Le query dovrebbero risiedere all'interno delle classi che richiedono i dati? Le query dovrebbero vivere in stored procedure nel database in modo che siano riutilizzabili?Dove dovrebbero essere attive le query del database?
Nella prima situazione, la modifica delle query non influirà su altre persone (altro codice o persone che generano report, ecc.). Nel secondo, le query sono riutilizzabili da molti e esistono solo in un posto, ma se qualcuno le rompe, sono infrante per tutti.
+1. I miglioramenti ORM hanno reso l'argomento stored-per-prestazioni meno rilevante. Problemi di prestazioni a parte, mi piace il codice posizionato in modo da permetterti di aggiornare e mantenere in futuro. – jro
Questo è ottimo per CRUD, ma per quanto riguarda le query più coinvolte che accedono a più tabelle? Che ne dici dell'accesso alle tabelle che non hanno chiavi primarie (e sei bloccato con esso perché appartengono a un fornitore di terze parti)? –
Sei corretto Signore. Un ORM non può essere utilizzato per ogni scenario. Nei casi che descrivi, i proc memorizzati potrebbero essere un percorso migliore. So che gli ORM principali forniscono supporto per i proc memorizzati ma non hanno molta esperienza nel lavorare con loro attraverso un orm. –