Compartir a través de


Creación de un modelo

Un modelo de EF almacena los detalles sobre cómo las clases de aplicación y las propiedades se asignan a las tablas y columnas de base de datos. Hay dos maneras principales de crear un modelo de EF:

  • Uso de Code First: el desarrollador escribe código para especificar el modelo. Entity Framework genera los modelos y mapeos en tiempo de ejecución basándose en las clases de entidad y la configuración adicional del modelo proporcionada por el desarrollador.

  • Uso de EF Designer: el desarrollador dibuja cuadros y líneas para especificar el modelo mediante EF Designer. El modelo resultante se almacena como XML en un archivo con la extensión EDMX. Los objetos de dominio de la aplicación normalmente se generan automáticamente a partir del modelo conceptual.

Flujos de trabajo de EF

Ambos enfoques se pueden usar para tener como destino una base de datos existente o crear una nueva base de datos, lo que da lugar a 4 flujos de trabajo diferentes. Averigüe cuál es la mejor para usted:

Sólo quiero escribir código... Quiero usar un diseñador...
Estoy creando una nueva base de datos Use Code First para definir el modelo en el código y, a continuación, generar una base de datos. Use Model First para definir el modelo mediante cuadros y líneas y, a continuación, genere una base de datos.
Necesito acceder a una base de datos existente Use Code First para crear un modelo basado en código que se asigne a una base de datos existente. Use Database First para crear un modelo de cuadros y líneas que se asigne a una base de datos existente.

Vea el vídeo: ¿Qué flujo de trabajo de EF debo usar?

En este breve vídeo se explican las diferencias y cómo encontrar la que es adecuada para usted.

Presentado por: Rowan Miller

Qué flujo de trabajo thumb WMV | MP4 | WMV (ZIP)

Si después de ver el vídeo aún no se siente cómodo decidir si desea usar EF Designer o Code First, aprenda ambos.

Una mirada debajo de la capucha

Independientemente de si usa Code First o EF Designer, un modelo de EF siempre tiene varios componentes:

  • Los propios objetos de dominio o tipos de entidad de la aplicación. Esto se conoce a menudo como la capa de objetos

  • Un modelo conceptual que consta de relaciones y tipos de entidad específicos del dominio, que se describen mediante Entity Data Model. Esta capa se conoce a menudo con la letra "C", para conceptual.

  • Modelo de almacenamiento que representa tablas, columnas y relaciones tal como se define en la base de datos. A menudo se hace referencia a esta capa con el "S" posterior para el almacenamiento.

  • Asignación entre el modelo conceptual y el esquema de la base de datos. Esta asignación se conoce como asignación "C-S".

El motor de asignación de EF aprovecha la asignación de "C-S" para transformar operaciones en entidades (como crear, leer, actualizar y eliminar) en operaciones equivalentes sobre las tablas de la base de datos.

La correspondencia entre el modelo conceptual y los objetos de la aplicación se denomina a menudo "O-C" mapping. En comparación con la asignación de "C-S", la asignación de "O-C" es implícita y uno a uno: las entidades, las propiedades y las relaciones definidas en el modelo conceptual son necesarias para que coincidan con las formas y los tipos de los objetos .NET. Desde EF4 y versiones posteriores, la capa de objetos se puede componer de objetos simples con propiedades sin dependencias en EF. Normalmente se conocen como Plain-Old CLR Objects (POCO) y la asignación de tipos y propiedades se realiza basándose en las convenciones de coincidencia de nombres. Anteriormente, en EF 3.5 había restricciones específicas para la capa de objetos, como que las entidades debían derivar de la clase 'EntityObject' y debían portar atributos de EF para implementar la asignación de "O-C".