Ich persönlich denke, NHibernate (plus FluentNHibernate und Linq to NHibernate) lässt mich am meisten Vernunft behalten. In realen Projekten ist die Verwaltung einer einzigen EDMX-Datei für ein großes Datenmodell in Entity Framework in einem großen Team wirklich mühsam. In NHibernate kann man mit Fluent die Dinge auf mehrere C#-Dateien aufteilen, oder das HBM-XML-Format ermöglicht die Verwendung mehrerer XML-Dateien. Das letzte Mal, als ich das Entity Framework verwendet habe, war das nicht einfach, es sei denn, man hatte für jedes Modell einen eigenen DataContext. (Falls sich das in letzter Zeit geändert hat, entschuldige ich mich für meine Unkenntnis). Das Schwierigste an NHibernate wird sich wahrscheinlich in den meisten ORM-Tools auf die eine oder andere Weise bemerkbar machen: Die Abbildung von Objektgraphen auf relationale Modelle ist knifflig. Aber man bekommt eine Menge Kontrolle über Dinge wie Lazy Loading, Parent/Child-Beziehungen und so weiter; das Mapping nach Konvention ist auch ein großer Gewinn, wenn man Fluent verwendet.
Aber Sie werden nicht pleite gehen, wenn Sie sich für das Tool entscheiden, in das Microsoft investiert; viele Unternehmen haben die Verwendung eines ORM nicht einmal ernsthaft in Betracht gezogen, bis das Entity Framework veröffentlicht wurde. Ich persönlich möchte nicht für Unternehmen arbeiten, die Entscheidungen wie diese aufschieben, bis ihr Anbieter eine passable Lösung gefunden hat, aber Tatsache ist, dass viele Unternehmen das Entity Framework verwenden (oder verwenden werden).
Es ist absolut nichts falsch daran, das Entity Framework zu verwenden, obwohl ich vermute, dass, wenn Sie EF in Wut für ein reales Projekt für 4 Wochen und NHibernate in Wut für etwa 4 Wochen, mit mehreren Entwicklern auf das Projekt verwendet, gibt es eine gute Chance, dass Sie NHibernate einfacher finden würde. Meiner Erfahrung nach sieht EF auf den ersten Blick viel einfacher aus, wird aber immer komplizierter, je länger man es benutzt. NHibernate sieht anfangs viel schwieriger aus und fühlt sich auch so an, aber es wird einfacher und offensichtlicher, je länger man es benutzt.
0 Stimmen
Siehe auch: stackoverflow.com/questions/146087/best-performing-orm-for-net y stackoverflow.com/questions/206197/