Ja, aber mit einigen Einschränkungen:
Es wird vollständig von Microsoft unterstützt und hat eine wachsende Community - aber da es neuer als sein engster Konkurrent, nHibernate, ist, hat es noch keine so ausgereifte Community.
Neben einer weniger ausgereiften Community wird es Zeiten geben, in denen eine Funktion mit EF4 verfügbar, aber kaum dokumentiert ist. oder EF4 löst Ausnahmen aus, bei denen Google Ihnen nicht helfen kann.
Es ist voll funktionsfähig, wenn es wie von Microsoft beabsichtigt verwendet wird, aber meiner Erfahrung nach kann es ziemlich schwierig sein, es in ein vorhandenes System nachzurüsten. Idealerweise verwenden Sie es in einem Greenfield-Szenario mit einem 100% igen Microsoft-Stack. Es ist sicherlich flexibel genug, um sich mit anderen Systemen zu vermischen, aber dies erhöht die Schwierigkeit erheblich.
Um den Hauptpunkt noch einmal zu wiederholen: Es ist vollständig und stabil genug für den Einsatz in der Produktion.
Eine wichtige Sache, die offensichtlich erscheint, aber oft übersehen wird, bis sie Schmerzen verursacht, ist, dass ein ORM vom relationalen Paradigma zum OO-Paradigma abbildet. Wenn eine dieser Ebenen nicht den Regeln des jeweiligen Paradigmas entspricht, fühlen Sie sich besonders verletzt.
Dies kann in beide Richtungen gehen - wenn Sie mit dem relationalen / satzbasierten Paradigma von SQL und OOP vertraut sind, lässt das ORM die beiden sich wie Butter vermischen. Wenn Ihre Datenbank so aussieht, als ob sie OO sein möchte, und Ihr OO-Code so aussieht, als ob sie auf Datensätzen basieren möchte, dann YMMV.
Wir haben EF in mehreren Produktionsanwendungen eingesetzt. Wir haben NHibernate auch in mehreren Produktions-Apps. Der Kommentar von STW, dass EF am besten funktioniert, "wenn es von Microsoft beabsichtigt wird", ist sicherlich wahr. Es gilt auch für NHibernate, dass es am besten funktioniert, wenn es nach den vom NHibernate-Team beabsichtigten Mustern verwendet wird. Ich habe keine Kenntnisse oder Erfahrungen mit XPO.
Ich bereue es nicht, NHibernate in Produktion genommen zu haben.
Ich bereue es nicht, Entity Framework in Produktion genommen zu haben.
Einer der treibenden Faktoren für die Verwendung von EF war die Integration in LINQ. Ich weiß, dass NHibernate auch viel mit LINQ gearbeitet hat, aber noch keine Zeit hatte, dies zu untersuchen.
quelle
Wir verwenden EF4.1 mit dem Code First-Ansatz für unser Webprojekt. Wie bereits erwähnt, werden Sie durch die Beibehaltung der von Microsoft beabsichtigten Verwendung viele Probleme vermeiden.
Man kann jedoch feststellen, dass das System noch nicht wirklich ausgereift ist und ich sage dies, weil:
quelle
Ich habe nicht den vollen Stapel verwendet, aber wir verwenden ihn stückweise in unserem Produkt und es scheint ziemlich ausgereift zu sein, obwohl wir einige Teile an unsere Bedürfnisse anpassen mussten.
quelle
Ich würde es mir denken. Ich verwende EF4 Code-First (CTP) zum Entwickeln einer mandantenfähigen Webanwendung.
quelle
Ich denke / hoffe es ... Ich starte ein Projekt mit EF 4 und dem neuen Model-First-Ansatz ...
Für das, was ich gesehen habe, ist EF 4 sehr robust und verfügt über ein vollständiges Feature der ersten Version ... Ich würde sagen, mach mit, ich weiß, ich gehe :)
quelle
Ja, Sie sollten jedoch Ressourcen für die Aktualisierung und den erneuten Test Ihrer Anwendung zuweisen, wenn Aktualisierungen veröffentlicht werden (wie bei jedem anderen Framework).
quelle