Ecco la mia situazione: sto cercando di seguire il più possibile il modello a 3 livelli (cioè il livello Presentazione, Business e Dati). Quando ho bisogno di dati dal DB, il livello Business chiama il livello dati che restituisce le informazioni. Il livello dati non restituisce mai un oggetto SqlDataReader o DataTable, ma spesso un'enumerazione di oggetto personalizzato noto da Data Access Layer. Funziona piuttosto bene quando il livello dati deve restituire una lista con pochi oggetti.Schema a 3 livelli e grandi quantità di dati
Sono ora di fronte a questo problema, la mia applicazione (il livello aziendale) deve elaborare 500000 record. Potrei semplicemente aggiungere un altro metodo al mio livello dati e restituire un oggetto IEnumerable ma questo mi sembra molto brutto. Non voglio caricare mezzo milione di record in memoria.
La mia domanda è, considerando il modello a 3 livelli, come devo gestire questo caso? Se non avessi uno schema a 3 livelli, userò semplicemente SqlDataReader nelle mie lezioni di business. Eventuali suggerimenti?
UPDATE: I dati non verranno visualizzati, quindi questo non è un problema di impaginazione (il livello di presentazione non è affatto coinvolto qui). Devo semplicemente analizzare ogni record e poi conservarne alcuni.
Grazie