Generar un modelo Entity Data Model
Las aplicaciones y servicios de Entity Framework se basan en el modelo Entity Data Model (EDM). Este modelo representa los datos de la aplicación como un conjunto de entidades y relaciones que están asignadas a un origen de datos definido. Un modelo EDM está compuesto de un modelo conceptual expresado como entidades y relaciones, un modelo de almacenamiento que representa el esquema del modelo lógico, y una asignación entre los dos. La fase de desarrollo de un proyecto se suele iniciar con el modelo conceptual y, posteriormente, el modelo lógico se deriva del modelo conceptual.
Para satisfacer las necesidades de los programadores que desean derivar un modelo Entity Data Model de una base de datos existente, Entity Framework proporciona un conjunto de herramientas que generan y validan un modelo EDM, y crean clases programables basadas en el modelo conceptual. La utilidad del símbolo del sistema Generador de EDM (EdmGen.exe) permite un modelo simple con una asignación unívoca entre entidades y tablas de un origen de datos. También se puede utilizar EdmGen.exe para generar las clases de datos que se basan en tipos de entidad y validar un modelo EDM. EdmGen.exe forma parte de los componentes del motor en tiempo de ejecución de Entity Framework en .NET Framework 3.5 Service Pack 1 (SP1).
Visual Studio 2008 SP1 incluye un conjunto integrado de herramientas de Entity Data Model que genera un modelo que incluye los objetos seleccionados de un origen de datos. Posteriormente, se puede modificar el modelo conceptual y la asignación utilizando Entity Data Model Designer para lograr el modelo conceptual requerido por la aplicación. Para obtener más información, vea Herramientas de Entity Data Model.
Consideraciones
Se deben tener en cuenta las consideraciones siguientes cuando se genera un modelo EDM:
Es necesario que todas las entidades tengan claves. Si la base de datos tiene una tabla sin una clave principal, las herramientas de EDM intentan deducir una clave para la entidad correspondiente. Además, las herramientas de EDM generan un elemento DefiningQuery en el esquema de almacenamiento que convierte los datos para esta entidad en datos de sólo lectura. Para que los datos de la entidad se puedan actualizar, se debe comprobar que la clave generada es una clave válida y, a continuación, quitar el elemento DefiningQuery.
Una tabla que representa una relación de varios a varios entre dos tablas de la base de datos puede que no tenga una entidad equivalente en el esquema conceptual. Cuando las herramientas de EDM encuentran una tabla de este tipo con solo las dos columnas que constituyen las claves externas, la tabla de asignación se representa en el esquema conceptual como una asociación de varios a varios en lugar de una entidad. La asociación CourseInstructor en el modelo School es un ejemplo de este comportamiento. Para obtener más información, vea Generar el Entity Data Model School (Tutorial rápido de Entity Framework).
En esta versión, las herramientas de Entity Data Model sólo admiten la generación automática de un modelo EDM basado en un origen de datos existente. No se puede generar automáticamente un origen de datos, como una base de datos relacional, basándose en el modelo conceptual.
El modelo School
Los temas de esta sección introductoria se refieren a una base de datos de ejemplo denominada School. Vea Crear la aplicación de ejemplo School (Tutorial rápido de Entity Framework) para conocer el script que genera la base de datos School en SQL Server.
La base de datos School contiene las tablas siguientes:
Course
CourseGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
Esta base de datos de ejemplo resalta muchos de los escenarios de modelos complejos admitidos por las herramientas de Entity Data Model. El script crea las relaciones entre las tablas e inserta datos de ejemplo para que pueda ejecutar los ejemplos y ver cómo trabajan. A continuación se muestra el modelo EDM de School en ADO.NET Entity Data Model Designer:
Vea también
Conceptos
Asignar un modelo conceptual a un esquema de almacenamiento
Modelado de datos en Entity Framework
Otros recursos
Configurar Entity Framework (tareas de Entity Framework)
Introducción (Entity Framework)
Herramientas de Entity Data Model
Especificaciones del EDM
Especificación de asignaciones y esquemas (Entity Framework)