EF sigue siendo un recién nacido en lo que respecta a la persistencia de objetos. Utiliza una herencia de objeto subyacente que algunas veces podría hacer que pierdas tu posibilidad de herencia durante el diseño. Esto podría haberse solucionado con la nueva versión de EF, y aún así, carece de la flexibilidad de NHibernate.
NHibernate es un puerto para .NET de Hibernate en JAVA. Es probable que tenga la misma madurez ahora, si recuerdo correctamente de la versión 3.0 de NHibernate. Utiliza la asignación de atributos, la asignación XML o también puede usar Fluent NHibernate o ConfORM, que le permiten asignar sus objetos de forma orientada a objetos y opcionalmente basada en convenciones.
Aunque EF4 parece ofrecer más rendimiento en algunos aspectos, mi preferencia reside todavía en el uso de NHibernate, ya que ha demostrado una mayor flexibilidad con motores de bases de datos externas distintos de SQL Server, en mi humilde opinión.
Por favor, ver por sí mismo:
- NHibernate vs. Entity Framework 4.0 (Ayende);
- Entity Framework 4 vs NHibernate (SO);
- EF4 compared to NHibernate;
- Performance comparison of nHibernate and Entity Framework.
- .net ORM Comparison (SO)
http://stackoverflow.com/questions/18132/ado-net-entity-vs-nhibernate http://stackoverflow.com/questions/1639043/entity-framework-4-vs- nhibernate http://stackoverflow.com/questions/3286335/deciding-between-nhibernate-vs-entity-framework –
+1 Su pregunta me permitió tomarme un tiempo para buscar algunos detalles sobre las dos tecnologías. ¡Gracias! =) –