Ho un sistema che usa CQRS con le Query scritte usando Dapper. Ha funzionato bene, tranne che c'è stata una proliferazione di classi di query che fanno quasi la stessa cosa. Lo svantaggio di questo è che le query aggiuntive significano un sovraccarico di manutenzione aggiuntivo (soprattutto a causa delle stringhe SQL) e altri problemi associati all'utilizzo di molte piccole classi, ma il lato positivo è che le classi sono conformi al Principio di Responsabilità Unica e sono in qualche modo più facili da ragionare circa.
Se stavo usando stored procs, probabilmente creerei solo alcune query più grandi, di uso generale (al fine di simulare il sovraccarico del mantenimento dell'SQL), ma il contrario sembra essere il caso in questa implementazione.
Qual è l'approccio migliore in termini di dimensioni della query? Dovrebbe esserci una query per viewmodel, o le query dovrebbero essere scomposte?