2010-02-20 19 views
5

Estaba leyendo este artículo sobre ADO.NET Entity Framework y me pareció muy interesante, aunque en el primer disparo no pude descifrar muchas cosas. Estoy leyendo el artículo de nuevo con el fin de comprender la lógica real detrás de esto.¿Cuál es el beneficio real de ADO.NET Entity Framework?

a) Tengo una pregunta en mi mente: ¿por qué necesitamos un marco ORM (en general)?

b) Y entre otros marcos ORM presentes para .NET como Spring.NET, Linq a Sql, NHibernate, etc. ¿por qué preferimos ADO.NET Entity Framework?

+1

Entity Framework es el ORM principal actualmente impulsado por Microsoft. Si desea obtener su ORM de Microsoft, esa es una razón para elegirlo. Otros ORM ofrecen características diferentes y hay muchas otras preguntas sobre StackOverflow sobre la comparación de ORM de .NET (http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/). –

Respuesta

10

b. Subjetivo. Puede que no sea capaz de ofrecer una buena opinión, ya que no he usado EF.

+4

wow .... no has usado EF, pero tu respuesta ha sido seleccionada. Impresionante. – DotNetRookie

0

a) un marco ORM abstrae el código de acceso a la capa de datos estándar: simplemente trata los objetos en el código.

b) Depende de sus circunstancias y requisitos.

+0

Señor, puede por favor ser un poco detallista. –

+0

@ priyanka.bangalore: solo es posible si detalla sus requisitos reales –

+0

No señor, no hay ningún requisito del proyecto como tal. Por mi propio bien, para entender solo lo pregunté :) –

1

He aquí algunos de mis pensamientos:

a) ORM existen para simplificar y reducir la carga de trabajo del desarrollador. En muchos modelos relacionales bien diseñados, se puede acceder a la base de datos a través de un código que es altamente repetitivo (simplemente cambie el nombre de una tabla, los nombres de las columnas, pero el comportamiento es muy similar). Un ORM genera un código que el desarrollador puede usar de inmediato y ajustarlo según sea necesario. El desarrollador no necesita escribir SQL: ese es el trabajo del ORM ahora. También actualiza el código generado al ajustarse automáticamente a los cambios de esquema de la base de datos.

b) No lo sé. Realmente depende de tus requisitos y dependencias. ¿Cuán involucrado quiere que sea su ORM? ¿Qué tan importante es el rendimiento? ¿Qué tan amigable para los desarrolladores quieres que sea el código? Entity Framework tiende a generar una biblioteca de clases más completa como la capa de acceso a datos, al tiempo que le brinda herramientas visuales para ajustar el código generado. Linq to SQL tiende a ser más fácil de espolvorear a través de diferentes métodos. Ese es solo un ejemplo.

3

EF es crear objetos lógicos a partir de tablas SQL relacionales. En general, quiere unir razonablemente sus tablas físicas con sus objetos, pero a veces no funciona de esa manera. Promueve la Ignorancia de persistencia.

4

Existen varias ventajas. Importante entre ellos son:

  1. Proporciona funcionalidad dedicada para el funcionamiento de CRUD (Crear, Leer, Actualizar, Eliminar). Fácil de implementar operaciones CRUD.

  2. Si desea reemplazar el almacén de datos, es muy fácil de reemplazar sin modificar la lógica de acceso a datos ya que todas las lógicas de acceso a datos están presentes en un nivel superior.

  3. Fácil de gestionar de una a una, de una a muchas y de muchas a muchas relaciones entre tablas.

  4. El modelo conceptual se puede representar de una mejor manera.

  5. El desarrollador puede reducir el código en clases y subclases para acceso a datos.

Cuestiones relacionadas