2008-12-08 13 views

Respuesta

11

Bueno, de los tres que ha enumerado, NHibernate ha sido el más largo. Si desea trabajar con algo que tiene un historial probado, probablemente sea un lugar seguro para comenzar.

Es bastante uniforme a través de las cuatro métricas (escala/curva de aprendizaje/facilidad de uso y rendimiento) aunque puede encontrar que hay más información disponible debido a que es más larga que las otras dos.

LINQ to SQL se ha lanzado durante más tiempo que Entity Framework, pero solo se ejecuta con los sabores de SQL Server. Funciona muy bien como un ORM adecuado, pero no es rico en funciones como el Entity Framework (que proporciona eSql, entre otras cosas).

LINQ to SQL es bastante fácil de entender (dependiendo de su conocimiento de LINQ) y más recientemente la calidad de las consultas generadas ha mejorado (desde las versiones anteriores). No estoy seguro de qué tan bien se escala, o funciona, pero tendrías que pensar que está a la par con un T-SQL escrito a mano por un desarrollador medio (¡bien, eso es una suposición descabellada!). Es bastante sencillo y genera un modelo muy agradable para ti en Visual Studio.

Hay otra (2) alternatives bases de datos no SQL Server son compatibles con

El Marco de la entidad es el más nuevo de los tres y, como resultado, todavía tiene algunos problemas que deben corregirse (esperemos que en la próxima versión). Funcionará con varios proveedores (no se limita a SQL Server) y tiene bondad adicional como eSQL y (1) Table-Per-Type inheritance. Puede ser un poco difícil de aprender al principio, pero una vez que haya hecho una o dos soluciones con él, se vuelve predecible y más fácil de implementar.

Debido a que es el último, tomará un poco más en términos de curva de aprendizaje (también hay más que aprender), y el rendimiento es ... menos que deseable (en la actualidad) pero ofrece algunos interesantes beneficios (especialmente el soporte para múltiples proveedores).

Supongo que mi pregunta en respuesta es - ¿está evaluando o necesita producir una solución ORM viable (lista para producción)?

Probablemente, Entity Framework no esté listo para un trabajo de producción serio (aparte de las soluciones más pequeñas) que lo deje con LINQ to SQL o NHibernate. Si solo vas a trabajar con bases de datos SQL Server, LINQ to SQL es una opción interesante. De lo contrario, NHibernate es probablemente la mejor apuesta para un trabajo serio.

(1) [http://msdn.microsoft.com/en-us/data/cc765425.aspx] (2) [http://www.devart.com/dotconnect/linq.html]

+1

1. Linq soporta herencia 2. Hay proveedores LINQ para MySQL, Oracle y PostgreSQL. – graffic

+0

Linq to SQl admite Table-Per-Type? – RobS

+0

....Entity Framework también es el único que admite adecuadamente un diseño de 3 niveles con servicios web entre los datos y el front-end –

Cuestiones relacionadas