Mi chiedo dove dovrebbero essere le query DB nell'architettura a tre livelli.
La prima associazione che pensa è nel DAL. Ma se BL vuole cercare un oggetto, il DAL deve pubblicare i metodi per ogni possibile ricerca (Non realistico - molto lavoro).
La seconda opzione è nel BL. Ma poi il BL ha bisogno di sapere come il DB ha progettato ... (L'incapsulamento non è buono)
La terza opzione, è che il DAL pubblicherà alcuni oggetti come "QueryBuilder" o qualcosa di simile, e il BL costruisce la query con associazione debole (ma ancora necessaria) al DB.
Qual è l'opzione migliore per consentire a BL di effettuare una ricerca?