NHibernate – Linq 2 SQL – Entity Framework

19 10 2007
NHibernate Linq to SQL Entity Framework
Mapping con Atributos Si Si Si
Mapping con XML Si Si Si
Persistencia Trasparente Si Parzial.
Para la gestión de las colecciones y de los proxys necesitas usar de los tipo especificos.
Parzial al estado acrtual. Las entidades deben implementar una interface.
Persistencia Transitiva Si No No
Estrategias de Fetching Si Si Si
Estrategias de Herencia Todas las estrategias Solo las tablas con Jerarquía Todas las estrategías
Mapping Entity sobre más tablas Previsto el porting da Hib 3.2 No Si
Mapping de Value Type Si No Si
Lenguaje de Interrogación a Objetos HQL (stringas) Linq aplicado a DataContext Linq to Entities (Aplicado a ObjectContext) per c# ey vb.net.
eSQL (stringas) para todos los lenguajes.
Lazy load Si Si Si
Mapping de llaves compuestas Si Si Si
Multi-database vendor Si No Si
Tracking estado entity Contesto de Persistencia. Contesto de Persistencia o Entity ??
Identity Map Si Si Si
Caching de entity y query Si No ??
Estensibilidad Muy Granular,Arquitectura a plug-in en varias partes Poco granular. IQuerableProvider es muy complicado. ??
Disponibilida Inmediata De noviembre De mitad 2008
Soporte a pagamento Red Hat Microsoft Microsoft

Nota:
Son los tres ORM…con mayor evolución.


Acciones

Information

3 responses

18 12 2007
LINQ to Entities o LINQ to SQL - Jorge Serrano - MVP Visual Developer - Visual Basic

[…] quería traeros una tabla de comparación entre NHibernate, LINQ to SQL y LINQ to Entities. No he podido verificar los datos de esta tabla, pero de ser correcta sería una interesante tabla […]

24 12 2007
Fabio Maulo

Hola… solo para correguir una cosita.
En NHibernate el soporte a pagamento no existe.
JBoss ya no suporta mas NH desde principio del 2007.
Abrazo.

28 04 2008
Dario Quintana

Hola, que buena comparación, estaba pensando en escribir una y veo esta y me gustó mucho.

Algo que me dí cuenta en estos días, es que para la parte de Testing en Entity Framework, está muy en pañales, de hecho no hay mucho que ayude a hacer Testeo sobre entidades. En NHibernate está muy fuerte esto, por ejemplo podés inyectar tu propio ConnectionProvider y entonces controlar todas las conecciones que se habren y se cierran.
Además en EntityFramework, no veo muchas interfaces para poder mockear por ejemplo.

Una cosa para corregir, en NHibernate se pueden hacer queries utilizando 3 API’s: Criteria, HQL y SQL Nativo.

Un abrazo.

Deja un comentario