Oui, mais avec quelques mises en garde:
Il est entièrement pris en charge par Microsoft et dispose d'une communauté croissante - mais étant plus récent que son concurrent le plus proche, nHibernate, il n'a toujours pas une communauté aussi mature.
En plus d'avoir une communauté moins mature, il y aura des moments où une fonctionnalité est disponible avec EF4 mais à peine documentée; ou EF4 lèvera des exceptions que Google ne peut pas vous aider.
Il est complet lorsqu'il est utilisé comme prévu par Microsoft, mais d'après mon expérience, il peut être assez difficile de le moderniser dans un système existant. Idéalement, vous l'utiliserez dans un scénario entièrement nouveau avec une pile 100% Microsoft. Il est certainement assez flexible pour se mélanger avec d'autres systèmes, mais cela augmente considérablement la difficulté.
Cependant, pour réitérer le point principal, il est suffisamment complet et stable pour une utilisation en production.
Une chose clé à souligner, qui semble évidente mais qui est souvent négligée jusqu'à ce qu'elle cause de la douleur, est qu'un ORM fonctionne pour passer du paradigme relationnel au paradigme OO. Si l'un de ces niveaux ne suit pas les règles de son paradigme respectif, vous vous sentirez encore plus blessé.
Cela peut aller dans les deux sens - si vous êtes bien familiarisé avec le paradigme relationnel / basé sur les ensembles de SQL et OOP, l'ORM laissera les deux s'entremêler comme du beurre. Si votre base de données semble vouloir être OO et que votre code OO semble être basé sur des enregistrements, alors YMMV.
Nous utilisons EF dans plusieurs applications de production. Nous avons également NHibernate dans plusieurs applications de production. Le commentaire de STW selon lequel EF fonctionne mieux "lorsqu'il est utilisé comme Microsoft le souhaite" est certainement vrai. Il est également vrai de NHibernate qu'il fonctionne mieux lorsqu'il est utilisé en suivant les modèles que l'équipe NHibernate voulait. Je n'ai aucune connaissance ou expérience avec XPO.
Je ne regrette pas d'avoir mis NHibernate en production.
Je ne regrette pas d'avoir mis Entity Framework en production.
L'intégration avec LINQ a été l'un des facteurs déterminants pour utiliser EF. Je sais que NHibernate a également fait beaucoup de travail avec LINQ mais n'a pas encore eu le temps d'enquêter sur cela.
la source
Nous utilisons EF4.1 avec l'approche Code First pour notre projet Web et, comme indiqué précédemment, en conservant l'utilisation telle que Microsoft l'a voulue, cela vous évitera de nombreux problèmes.
On peut cependant remarquer que le système n'est pas encore vraiment mature et je le dis car:
la source
Je n'ai pas réellement utilisé la pile complète, mais nous l'utilisons au coup par coup dans notre produit et cela semble assez mature, même si nous avons dû adapter certaines pièces à nos besoins.
la source
Je pense que oui. J'utilise EF4 code-first (CTP) pour développer une application Web multi-locataire.
la source
Je pense / j'espère bien ... Je commence un projet avec EF 4 et la nouvelle approche Model-First ...
Pour ce que j'ai vu, EF 4 est beaucoup plus robuste et dispose de fonctionnalités complètes que la première version ... Je dirais allez-y, je sais que j'y vais :)
la source
Oui, mais vous devez allouer des ressources pour mettre à jour et retester votre application lorsque des mises à jour sont publiées (comme avec tout autre framework).
la source