ORM: Sì, per qualsiasi software aziendale simile, in cui i dati sono complessi ... livelli multipli, tabelle, livelli ... Ma anche qui è consigliabile un buon mix di NHibernate ed EF6 e viste del database.
No per le app speciali. come la misurazione e dove è necessario salvare davvero un sacco di dati, ma senza la complessità dei dati
Con ORM ci sono molteplici possibilità, tutto dipende ciò che si desidera.
Come un vero e proprio mapping ORM sono fermamente recomment NHibernate e Fluent NH mappature. Hai bisogno di molte ricerche per mettere insieme una bella architettura, ma poi niente ti ostacola. Con minimi compromessi si ottiene una reale flessibilità.
EF6x (il core non è pronto all'IMHO) viene chiamato un ORM, ma ciò che genera è più vicino a un DAL. Ci sono alcune cose che non puoi fare efficacemente con EF6. Eppure, questo è il mio strumento preferito per un modello di lettura, mentre lo combino con NHibernate (dove l'NH utilizzo per un modello DDD/scrittura).
Ora a prestazioni - è sempre pro e contro. Se approfondisci l'architettura di ORM (vedi il mio articolo: avoid ORM bad habits), troverai intuitivamente i modi per renderlo più veloce. Ecco il mio altro articolo su come fare EF6x 5x più veloce (almeno per situazioni di lettura): EF6.x 5x faster
Che cosa significa "complesso, SQL sintonizzati a mano" significa? Pensavo che l'ORM potesse gestire tutto ciò che potevi fare in SQL. – johnny
Un ORM è in grado di gestire * qualsiasi cosa * che si possa fare in SQL, in particolare quando si considera un SQL specifico (in questo caso Oracle). Se è necessario utilizzare le funzionalità specifiche di Oracle, è probabile che sia necessario scrivere almeno alcune delle query in SQL piuttosto che il linguaggio di query dell'oggetto ORM. –
I luoghi più comuni in cui ho dovuto raggiungere oltre l'ORM e scrivere il mio SQL sono stati rapporti. Alcuni rapporti possono diventare piuttosto complessi, e non penso che nessun ORM usi ancora PIVOT. – Min