Penso di essere in minoranza su questo, ma sarei curioso di vedere altre prospettive.
Molte volte vedo persone parlare del Data Layer come avere funzioni come UpdateCustomer () o Summarize (). Mi sento davvero come se il Data Layer fosse più astratto di quello. Attualmente utilizzo un modello di repository generico in cima al framework di entità nel mio livello dati. Quindi ottengo funzioni come Trova (int id), Aggiorna (), Salva (), Tutto (), ecc. Funzioni molto generiche.
Quindi creo i livelli di Business Logic che hanno funzioni più specifiche come Summarize () che funzionano sul Data Layer generico. Per me basta isolare la tecnologia di accesso ai dati per il livello dati. È un lavoro abbastanza grande per conto proprio. Perché fornire queste apparentemente funzioni di query nel tuo livello dati? La logica aziendale che scrivo gran parte del tempo è all'interno delle query di Linq stesse, quindi per me tutte le query specifiche dovrebbero essere nel livello aziendale e non nel livello dati, ma questo non è ciò che vedo spesso.
Inoltre, poiché i miei livelli dati non sono molto generici, posso condividerli, sono DLL, con altri livelli aziendali (spesso servizi web) in modo da poter combinare insieme dati molto diversi tra loro in un Business Layer per unire le query tra il 2 (poiché ho accesso generico ai dati sottostanti) e aiuta anche a non dover ricreare i livelli di dati per ciascuna soluzione separata. Per me è una grande possibilità di recupero.
Mi chiedo quale sia l'opinione opposta sul mio punto di vista qui. Perché sono "sbagliato" a pensare in questo modo e perché l'altro è "giusto"?