Generar modelos y asignaciones
Las aplicaciones y servicios de Entity Framework se basan en información de modelos y asignaciones que se expresa en tres lenguajes basados en XML:
CSDL representa los datos de la aplicación como un conjunto de entidades y relaciones de un modelo conceptual, y es una implementación de Entity Data Model. Un modelo de almacenamiento se expresa en SSDL y representa el esquema del almacén de datos. La asignación entre los dos modelos se expresa en MSL.
Las ADO.NET Entity Data Model Tools pueden generar automáticamente el contenido CSDL, SSDL y MSL para una aplicación. El Entity Data Model Wizard genera la información del modelo y la asignación, así como las clases de datos, a partir de una base de datos existente. El Entity Data Model Designer se puede utilizar entonces para modificar gráficamente la información del modelo y la asignación. O bien, puede crear gráficamente un modelo conceptual con el Diseñador de entidades y, a continuación, utilizar Generate Database Wizard para generar automáticamente el modelo de almacenamiento, las asignaciones, las clases de datos y una base de datos que implemente el modelo conceptual. En cualquier caso, puede utilizar el Update Model Wizard para actualizar la información del modelo y de la asignación cuando la base de datos subyacente cambie.
La herramienta de línea de comandos Generador de EDM (EdmGen.exe) permite generar un modelo conceptual simple con una asignación unívoca entre entidades y tablas de un origen de datos. También se puede utilizar EdmGen.exe para validar un modelo conceptual y generar las clases de datos que se basan en tipos de entidad del modelo. EdmGen.exe forma parte de los componentes del motor de ejecución de Entity Framework incluidos en .NET Framework a partir de la versión 3.5 Service Pack 1 (SP1).
Consideraciones
Las siguientes consideraciones se aplican al utilizar las Herramientas de Entity Data Model para generar un modelo conceptual a partir de una base de datos existente:
Es necesario que todas las entidades tengan claves. Si la base de datos tiene una tabla sin una clave principal, las herramientas de Entity Data Model intentan deducir una clave para la entidad correspondiente. Además, las herramientas de Entity Data Model generan un elemento DefiningQuery en el esquema de almacenamiento que convierte los datos para esta entidad en datos de solo 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 solo contiene claves externas (a veces denominada tabla combinada pura) y representa una relación de varios a varios entre dos tablas de la base de datos no tendrá una entidad correspondiente en el modelo conceptual. Cuando las herramientas de Entity Data Model encuentran esa tabla, la tabla se representa en el modelo 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 archivo .edmx de School (Tutorial rápido de Entity Framework).
El modelo School
Los temas de esta sección Introducción (Entity Framework) 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 una instancia de SQL Server.
La base de datos School contiene las tablas siguientes:
Course
StudentGrade
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 School mostrado en el ADO.NET Entity Data Model Designer:
Vea también
Conceptos
Asignar un modelo conceptual a un modelo de almacenamiento
Otros recursos
Configurar Entity Framework (tareas de Entity Framework)
Introducción (Entity Framework)
Entity Data Model Tools
Especificaciones CSDL, SSDL y MSL