EF ist in Bezug auf die Objektpersistenz noch ein Neuling. Es verwendet eine zugrundeliegende Objektvererbung, die manchmal dazu führen kann, dass man die Möglichkeit der Vererbung bei der Entwicklung verliert. Dies könnte mit der neuen Version von EF behoben worden sein, und dennoch fehlt es an der Flexibilität von NHibernate.
NHibernate ist eine Portierung von Hibernate in JAVA nach .NET. Wenn ich mich richtig an die Version 3.0 von NHibernate erinnere, ist es jetzt wahrscheinlich ungefähr gleich ausgereift. Es verwendet entweder Attribut-Mapping, XML-Mapping oder man kann auch Fließendes NHibernate o ConfORM die es Ihnen ermöglichen, Ihre Objekte objektorientiert und optional konventionsbasiert abzubilden.
Obwohl EF4 in mancher Hinsicht leistungsfähiger zu sein scheint, bevorzuge ich nach wie vor die Verwendung von NHibernate, da es sich IMHO als flexibler bei anderen Datenbank-Engines als SQL Server erwiesen hat.
Bitte überzeugen Sie sich selbst:
- NHibernate vs. Entity Framework 4.0 (Ayende) ;
- Entity Framework 4 gegenüber NHibernate (SO) ;
- EF4 im Vergleich zu NHibernate ;
- Leistungsvergleich von nHibernate und Entity Framework .
- .net ORM Vergleich (SO)