Mi equipo está comenzando un nuevo proyecto en ASP.NET MVC, y nos estamos preguntando qué tecnología utilizar 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 de mantener?NHibernate, Entity Framework, registros activos o linq2sql
Respuesta
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, elija NHibernate.
Choosing Database and ORM for a .NET project
Which ORM tool should I use for .Net development
Easiest to learn and use .NET ORM framework?
Some suggestions on which .NET ORM to look at learning
https://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net
https://stackoverflow.com/questions/249550/what-orm-frameworks-for-net-do-you-like-best
Best free ORM tools to use with .NET 2.0/3.5
https://stackoverflow.com/questions/132676/which-orm-for-net-would-you-recommend
Después de 04 septiembre de 2009:
O/RM Choice (not reliant on linq)
https://stackoverflow.com/questions/1469761/nhibernate-vs-entity-framework-vs-something-better
How to choose an object relational mapping for .net
Dicho esto, 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 una más larga y bastante hasta la fecha el análisis, no dude en leer esto:
Esta cuestión ha adquirido algunas respuestas por encima de la media, a pesar de que se trata de un DUP: http://stackoverflow.com/questions/5101974/comparison-entity -framework –
Personalmente, me encantan ambos frameworks, pero Entity Framework tiene una gran ventaja sobre NHibernate: es mucho más fácil trabajar. Especialmente para las personas nuevas en NHibernate, la fase de inicio puede ser bastante difícil. EF lo hace mucho mejor. Sin embargo, en algunas áreas, NHibernate es superior, p. cuando se trata de extender el marco, NHibernate ofrece más opciones. –
Tenga una mirada en TinyDA https://github.com/kumait/TinyDA – Kumait
Mi preferencia es LLBLGenPro, un ORM realmente genial que funciona como era 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).
LINQ2SQL es probobly 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.
Nah;) https://github.com/FransBouma/LinqToSQL2 –
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.
Podría usar PLINQO si desea soporte de relación muchos a muchos y usa LINQ-2-SQL. http://www.codesmithtools.com/product/frameworks –
Este blog post 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.
Michael, SUbSonic no es decente en absoluto. Realmente no entiendo por qué las personas lo intentan. Solo su conjunto de 300 Kb, p. Ej.4 Mb @ OpenAccess: debe quedar claro que es solo un pequeño juguete. Y olvídate de LINQ allí. Apuesto a que su soporte LINQ nunca sería comparable a otros. –
Lo sentimos, "SubSonic" y "Just su" => "Comparar su";) –
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 intentando esto - SubSonic y me veo muy prometedor.
Para comparar ORM - echar un vistazo en http://ormbattle.net/
Ese sitio ya tiene una muy mala reputación. :( –
De acuerdo, ¡tiene que ver qué compañía de ORM admite este sitio web! – Codezy
Chicos, visite Preguntas frecuentes y Blog @ ORMBattle, explican mucho. Michael, este sitio tiene mala reputación _por usted_ - Sospecho que porque SubSonic promociona aquí muestra su verdadera cara allí. –
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. Yo prefiero su diseñador visual y sus características ORM:
- tipos complejos
- Lazy Loading
- PLINQ
He estado usando Entity Framework (Código primero) y NHibernate desde hace algún 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.
- 1. Entity framework 4 o DataSet?
- 2. Sincronizar registros usando Entity Framework
- 3. ADO.NET Entity Framework contra NHibernate
- 4. Pasar de Entity Framework a NHibernate
- 5. Entity Framework y registros borrados blandos
- 6. nHibernate vs Entity Framework con Oracle backend
- 7. Linq2SQL vs EF en .net Framework 4.0
- 8. Entity Framework - C# o VB.Net
- 9. ADO.NET Entity Framework o ADO.NET
- 10. Entity Framework llamando a MAX en nulo en registros
- 11. C# Entity Framework Pagination
- 12. Entity Framework (EF) OutOfMemoryException
- 13. Rieles - Cookies o Tienda de registros activos para sesiones
- 14. Entity Framework: Ignorar columnas
- 15. Entity Framework GroupPor un objeto o ComplexType
- 16. WCF Data Services o Entity Framework
- 17. LINQ o ADO.net Entity Framework: ¿qué aprender?
- 18. ¿Crea un archivo .dbml/.edmx múltiple para una base de datos grande cuando usa LINQ2SQL o Entity Framework?
- 19. proyecciones de Entity Framework
- 20. MS Entity Framework VS NHibernate y sus contribuciones derivadas (FluentNHibernate, Linq for NHibernate)
- 21. ¿Por qué debería preocuparme por Entity Framework?
- 22. Entity Framework SET IDENTITY_INSERT
- 23. Entity Framework + POCO
- 24. Alternativa SqlMetal para Entity Framework 4
- 25. Herencia de Entity Framework: TPT, TPH o ninguno?
- 26. Entity Framework en .NET?
- 27. . ORM de .NET: ¿qué ventajas otorga NHibernate (o SubSonic o lo que sea) a través de Entity Framework?
- 28. Entity Framework v4.1 COMO
- 29. Entity Framework y multihilo
- 30. Entity Framework ObjectContext reutilización
El registro activo es más un patrón de diseño que una tecnología [http://en.wikipedia.org/wiki/Active_record_pattern] a menos que se refiera a algo específico como Castle ActiveRecord [http://www.castleproject.org/ activerecord/index.html]? –
lo obtuve, bueno, me refería al registro activo subsónico – Omu
para F #, SQLProvider: https://github.com/fsprojects/SQLProvider –