asp.net-mvc - net - entity framework project example
NHibernate, Entity Framework, registros activos o linq2sql (9)
Entity Framework tiene un mejor mapeo de relaciones que linq2sql (por ejemplo, tiene relaciones múltiples múltiples).
No he usado los otros dos, pero utilicé Hibernate en Java y fue bastante fácil de usar.
Mi equipo está comenzando un nuevo proyecto en ASP.NET MVC, y nos estamos preguntando qué tecnología usar para el acceso a los datos. ¿Cómo decides cuál es el mejor? ¿Cuál tiene el mejor rendimiento? ¿Cuál es más fácil de usar y mantener?
LINQ2SQL es probablemente el más fácil de usar. Entity Framework proporciona gran extensibilidad y la versión futura contendrá muchas mejoras.
Una regla clave para el rendimiento: escriba un código que sea fácil de mantener, leer y distribuir; si es lento, ¡optimízalo!
Creo que la diferencia de rendimiento entre los ORM hoy en día es evidente, por lo que debe elegir la que le resulte más cómoda y eficiente para trabajar.
Me enfrento al mismo dilema. LINQ2SQL le dará más flexibilidad y control inmediato sobre el acceso a los datos, sin embargo, Entity Framework es la solución "empresarial". Actualmente estoy probando esto - SubSonic y me veo muy prometedor.
Mi preferencia es LLBLGenPro, un ORM realmente genial que funciona como es de esperar. No se basa en la configuración como entity framework o nhibernate, genera su DAL basado en su db (con mucha flexibilidad a través de sus herramientas).
Esta publicación de blog compara varias tecnologías de datos para .NET en varios aspectos (rendimiento, facilidad de mantenimiento, capacidad de prueba, etc.). Puede ser de alguna ayuda para su proceso de toma de decisiones.
Para comparar los ORM, eche un vistazo a http://ormbattle.net/
Mi elección es Devart LinqConnect (http://www.devart.com/linqconnect/). Este producto es tan fácil de usar como LINQ to SQL (e incluso es compatible con él) y, al mismo tiempo, ofrece funciones avanzadas de ORM, como Entity Framework. Prefiero su diseñador visual y sus características de ORM:
- Tipos complejos
- Carga lenta
- PLINQ
He estado utilizando Entity Framework (Code first) y nHibernate desde hace un tiempo, y prefiero nHibernate, específicamente fluido. Parece que me da mucha más flexibilidad en la forma de asignar mis objetos a la base de datos. Además, otorga un control mucho mayor sobre la carga diferida y las acciones en cascada sobre los objetos.
Si .NET 4.0, elige entre NHibernate o Entity Framework. NHibernate es más extensible y generalmente tiene más funciones. Entity Framework funciona mejor para las empresas que prefieren tener lo que proporciona Microsoft. Ambas son opciones válidas y nadie ha publicado una comparación objetiva significativa de golpes por golpe. Esta es una de las mejores comparaciones no objetivas:
http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx
Si .NET 3.5 o anterior, elige NHibernate.
Elegir base de datos y ORM para un proyecto .NET
¿Qué herramienta de ORM debería usar para el desarrollo de .Net?
¿Es más fácil aprender y usar .NET ORM framework?
Algunas sugerencias sobre qué .NET ORM para ver el aprendizaje
https://.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net
https://.com/questions/249550/what-orm-frameworks-for-net-do-you-like-best
Las mejores herramientas gratuitas de ORM para usar con .NET 2.0 / 3.5
https://.com/questions/132676/which-orm-for-net-would-you-recommend
Después del 4 de septiembre de 2009:
Opción O / RM (no depende de linq)
https://.com/questions/1469761/nhibernate-vs-entity-framework-vs-something-better
Cómo elegir un mapeo relacional de objetos para .net
Dicho eso, las cosas cambian. Ahora que NHibernate es compatible con Linq, creo que NHibernate es la opción más clara en la gran mayoría de las situaciones. Para un análisis más largo y bastante actualizado, no dude en leer esto: