Sono davvero impressionato da Dapper micro OR/M, mi piacerebbe davvero usarlo come compagno affiancato di alcuni OR/M a pieno titolo, e il mio essere evanescente al posto di esso. Non ho capito comunque se c'è qualche strategia per deserializzare una gerarchia da db: per esempio l'oggetto restituito per una riga recordset dipenderebbe da un campo (il cosiddetto 'discriminator' in NH per esempio). Inoltre la gerarchia può dividere più tabelle tramite un join, quindi il tipo che rappresenta la riga dipenderà dall'esistenza del record nell'altra tabella. Avere una gerarchia rappresentata da una combinazione delle due strategie di cui sopra sarebbe qualcosa che NH, ad esempio, non supporta, ma che esiste nella "vita relazionale". Quindi le domande:usando dapper per sostituire un OR/M completo
- Dapper gestisce un simile scenario?
- questo scenario cancella gli sforzi di Dapper in termini di prestazioni?
Un altro argomento è il caching. La cache di Dapper per le query è un po 'troppo aggressiva, non sarebbe meglio avere un "contesto simile a una sessione" e avere una cache di query per ogni sessione, o questo offenderebbe nuovamente le principali motivazioni di Dapper?
Grazie! Sono d'accordo sulla cache, usando ulteriormente/guardando il codice penso che non ci sia un reale bisogno di averne un altro. Avrò il problema della sottoclasse se mi trasferirò da NH a Dapper per il mio prossimo progetto, proverò a risolvere, magari con un metodo statico sul POCO con parametri iniettati dal deserializzatore? –
personalmente preferisco la chiarezza del localizzatore di fabbrica rispetto alla convenzione per questo caso –
questo non fa male le prestazioni un po '? –