Estoy empezando con Entity Framework. Suena grandioso. Pero me pregunto si debería estar atento a alguna debilidad en alguna parte. Alguna experiencia allí?¿Cuál es la característica más molesta (o falta de características) que ha encontrado en Entity Framework?
Respuesta
Probablemente necesite comenzar prefijando estas preguntas con la versión de la que está hablando. Una buena cantidad de las molestias se han corregido en la próxima versión en .NET 4.0.
Esto es lo que yo diría que después de trabajar con la primera versión durante unos 6 meses usando un tamaño decente DB en SQL 2k8 (más de 40 mesas, con varias mesas cerca de las filas 1 M, y la cantidad decente de tráfico)
- Falta de propiedades de clave foránea. Es decir, si quiero saber o trabajar con solo el ID de una tabla relacionada, tengo que cargar la entidad real. (solucionado en la próxima versión)
- Falta de una unión externa fácil como linq a sql cuando se usa DefaultIfEmpty. Reparado en la próxima versión.
- SQL generado es inferior al óptimo Esto parece estar fijo en la próxima versión, así
- muy difícil abstraerse de su código de capacidad de prueba y para uso en entornos de varios niveles, pero se puede hacer . Esto también se puede clasificar como el problema POCO que también se ha resuelto.
Hay más, pero estos son mis mejores.
En general, volvería a utilizarlo, pero si está empezando desde cero, por favor ahórrese un poco de dolor y espere la última versión o comience a usar la versión beta si puede.
Puede encontrar el walkthroughs for Entity Framework 4.0 useful. Todas las nuevas características discutidas son emisiones molestas de la versión actualmente lanzada para alguien.
Encontré las nuevas funciones TDD/testabilidad y las características de generación de código T4 especialmente interesantes.
Estoy buscando los objetos POCO y el diseño de primer modelo en el EF4 beta muy sexy.
Sobre EF1:
- SQL generado es horrible. Multiplica las uniones, es 10 veces más grande de lo que podría. Tenía una consulta simple, pero con muchas combinaciones y la generación de esta consulta por EF (no se ejecuta) estaba ralentizando significativamente mi aplicación. No, no pude usar la consulta precompilada. Utilicé view para enfrentarlo. SQL Profiler fue útil.
- Las claves primarias en las vistas no se reconocen correctamente. Debe modificar el archivo edmx a mano cuando importe la vista o actualice el esquema.
- Puede diseñar entidades desde la base de datos de manera gráfica, actualizar el modelo desde la base de datos, pero no siempre funciona bien, especialmente cuando cambia los tipos de campo o las claves externas.
- No puede actualizar una tabla en el modelo, siempre debe actualizar todo el modelo desde db.
- No puede definir la clase base para sus entidades, ya está definido (EntityObject).Puede usar interfaces, porque las clases se definen como parciales.
- No POCO, las clases de entidad están fuertemente conectadas al marco.
- Puede establecer una clave externa mediante EntityReference.EntityKey, pero cuando tenga EntityCollection, prepárese para el viaje de ida y vuelta a db. ¿O me estoy perdiendo algo?
- 1. ¿Cuál es la declaración LINQ más impresionante que ha encontrado?
- 2. "característica" molesta (o errores?) Para RODBC
- 3. ¿Cuál es la cosa más molesta/extraña que le ha sucedido usando Excel Interop
- 4. ¿Cuál es la característica más importante que le falta a PostgreSQL en comparación con Oracle y DB2 para OLTP?
- 5. ¿Falta la característica .NET en la aplicación de estilo Metro?
- 6. ¿Cuál es la característica más peligrosa de C++?
- 7. característica que falta en Lucene 4.0 instantánea
- 8. ¿Cuál es la sintaxis más suave y atractiva que ha encontrado para afirmar la corrección de parámetros en C#?
- 9. ¿Qué problemas ha tenido con Entity Framework?
- 10. Cuál es la expresión regular más larga que ha visto
- 11. ¿Cuál es la sesión de NHibernate.Load equivalent en Entity Framework?
- 12. ¿Alguien ha encontrado que la recolección de basura sea útil?
- 13. ¿Cuál es la mejor característica de la estructura ORM que utiliza
- 14. ¿Cuál es la diferencia entre estas dos declaraciones (Entity Framework)
- 15. ¿Alguien ha encontrado que OSGi es útil en aplicaciones corporativas?
- 16. NHibernate, Entity Framework, registros activos o linq2sql
- 17. ¿Cuál es la pluralidad que nombra "problema" en el contexto de Entity Framework?
- 18. ¿Cuál es tu característica favorita de jQuery?
- 19. ¿Crees que es ventajoso cambiar a Entity Framework?
- 20. ADO.NET Entity Framework o ADO.NET
- 21. Entity framework 4 o DataSet?
- 22. Nano hacks: programas pequeños más útiles que ha codificado o encontrado
- 23. Entity Framework - C# o VB.Net
- 24. ¿Cuál es el beneficio real de ADO.NET Entity Framework?
- 25. ¿Alguien más se molesta con Dublin Core?
- 26. WCF Data Services o Entity Framework
- 27. Entity Framework: ¿es adecuado para la aplicación Enterprise Level?
- 28. ¿Cuál es la mejor forma de escribir consultas en Entity Framework
- 29. Cualquiera que use Entity Framework * ¿Bien *?
- 30. ¿Cuál es la solución más elegante para la falta de DefaultFileName en SaveFileDialog en Silverlight?
Supongo que lo que consideras que es sexy difiere de la mía ... :) Diré que es emocionante, pero no en un "esperando que mis cialis entren mientras estás sentado en tinas de baño a juego en un campo verde" un poco de camino " –