ORM: Oui pour tous les logiciels comme des entreprises, où les données sont complexes ... plusieurs niveaux, des tables, des couches ... Mais même ici un bon mélange de vues NHibernate et EF6 et base de données sont conseillés.
Non pour les applications spéciales. comme la mesure et où vous devez vraiment économiser beaucoup de données, mais sans données complexité
Avec ORM il y a plusieurs possibilités, tout dépend de ce que vous voulez.
Comme un vrai mappeur ORM Je fortement recomment NHibernate et Courant NH correspondances. Vous avez besoin de beaucoup de recherches pour assembler une belle architecture, mais alors rien ne vous gêne. Avec des compromis minimes, vous obtenez une réelle flexibilité.
EF6x (noyau est pas prêt à mon humble avis N ° de prod) est appelé un ORM, mais ce qu'il génère est plus proche d'un DAL. Il y a certaines choses que vous ne pouvez pas faire efficacement avec EF6. Encore, c'est mon outil préféré pour un modèle de lecture, tandis que je le combine avec NHibernate (où NH j'utilise pour un modèle DDD/écriture).
Maintenant à performance - c'est toujours pro et les inconvénients. Si vous approfondissez plus profondément dans l'architecture ORM (voir mon article: avoid ORM bad habits) alors vous trouverez intuitivement les moyens de le rendre plus rapide. Voici mon autre article sur la façon de rendre EF6x 5x plus rapide (au moins pour les situations de lecture): EF6.x 5x faster
Que signifie "SQL complexe, réglé à la main"? Je pensais que l'ORM pourrait gérer tout ce que vous pourriez faire en SQL. – johnny
Un ORM capable de gérer * n'importe quoi * que vous pourriez faire en SQL en particulier lorsque vous envisagez un SQL spécifique (dans ce cas, Oracle). Si vous avez besoin d'utiliser des fonctionnalités spécifiques à Oracle, vous devrez probablement écrire au moins quelques unes de vos requêtes dans SQL plutôt que dans le langage de requête d'objet de l'ORM. –
Les endroits les plus communs où j'ai dû passer devant l'ORM et écrire mon propre SQL ont été des rapports. Certains rapports peuvent devenir assez complexes, et je ne pense pas non plus qu'ORM utilise PIVOT. – Min