Tak, ale z pewnymi zastrzeżeniami:
Jest w pełni obsługiwany przez Microsoft i ma rosnącą społeczność - ale jest nowszy niż jego najbliższy konkurent, nHibernate, wciąż nie ma tak dojrzałej społeczności.
Wraz z mniej dojrzałą społecznością będą chwile, gdy funkcja będzie dostępna z EF4, ale ledwo udokumentowana; lub EF4 zgłosi wyjątki, w których Google nie może ci pomóc.
Jest w pełni funkcjonalny, gdy jest używany zgodnie z intencjami Microsoft, ale z mojego doświadczenia może być dość trudny do modernizacji w istniejącym systemie. Idealnie będziesz go używać w scenariuszu typu greenfield ze 100% stosem Microsoft. Z pewnością jest wystarczająco elastyczny, aby ingerować w inne systemy, ale znacznie zwiększa to trudność.
Jednak, aby powtórzyć główny punkt, jest on kompletny i wystarczająco stabilny do użytku produkcyjnego.
Jedną z kluczowych rzeczy, na które należy zwrócić uwagę, co wydaje się oczywiste, ale często jest pomijane, dopóki nie spowoduje bólu, jest to, że ORM działa w celu odwzorowania paradygmatu relacji na paradygmat OO. Jeśli któryś z tych poziomów nie będzie przestrzegał zasad odpowiedniego paradygmatu, poczujesz dodatkowe cierpienie.
Może to przebiegać w obie strony - jeśli jesteś dobrze zaznajomiony z paradygmatem SQL i OOP opartym na relacjach / zestawach, ORM pozwoli obu mieszać się jak masło. Jeśli twoja baza danych wygląda na to, że chce być OO, a twój OO-code wygląda na oparty na rekordach, to YMMV.
Używamy EF w kilku aplikacjach produkcyjnych. Mamy również NHibernate w kilku aplikacjach produkcyjnych. Komentarz STW, że EF działa najlepiej „gdy jest używany zgodnie z intencjami Microsoft”, jest z pewnością prawdziwy. Prawdą jest również, że NHibernate działa najlepiej, gdy jest stosowany zgodnie ze wzorami, które zamierzał zespół NHibernate. Nie mam wiedzy ani doświadczenia z XPO.
Nie żałuję wprowadzenia NHibernate do produkcji.
Nie żałuję wprowadzenia Entity Framework do produkcji.
Jednym z czynników napędzających użycie EF była integracja z LINQ. Wiem, że NHibernate wykonał również dużo pracy z LINQ, ale jak dotąd nie miałem czasu, aby to zbadać.
źródło
Używamy EF4.1 z podejściem Code First w naszym projekcie internetowym i, jak już wcześniej wspomniano, utrzymanie użytkowania zgodnie z zamierzeniami Microsoft pozwoli uniknąć wielu problemów.
Można jednak zauważyć, że system nie jest jeszcze naprawdę dojrzały i mówię to, ponieważ:
źródło
W rzeczywistości nie wykorzystałem pełnego stosu, ale używamy go fragmentarycznie w naszym produkcie i wydaje się dość dojrzały, chociaż musieliśmy dostosować niektóre elementy do naszych potrzeb.
źródło
Tak myślałbym. Używam kodu EF4 jako pierwszy (CTP) do tworzenia aplikacji sieci Web dla wielu dzierżawców.
źródło
Tak myślę / mam nadzieję ... Rozpoczynam projekt od EF 4 i nowego podejścia do Model-First ...
To, co widziałem, EF 4 jest o wiele solidne i kompletne, że pierwsza wersja ... Powiedziałbym, że idź, wiem, że idę :)
źródło
Tak, jednak należy przydzielić zasoby na aktualizację i ponowne przetestowanie aplikacji, gdy pojawią się aktualizacje (jak w każdym innym środowisku).
źródło