Entity Framework - Modelo de datos

Entity Data Model (EDM) es una versión extendida del modelo Entity-Relationship que especifica el modelo conceptual de los datos utilizando varias técnicas de modelado. También se refiere a un conjunto de conceptos que describen la estructura de los datos, independientemente de su forma almacenada.

EDM admite un conjunto de tipos de datos primitivos que definen propiedades en un modelo conceptual. Necesitamos considerar 3 partes centrales que forman la base de Entity Framework y colectivamente se conoce como Entity Data Model. A continuación se encuentran las tres partes centrales de EDM.

  • El modelo de esquema de almacenamiento
  • El modelo conceptual
  • El modelo de mapeo

El modelo de esquema de almacenamiento

El modelo de almacenamiento, también denominado capa de definición de esquema de almacenamiento (SSDL), representa la representación esquemática del almacén de datos de backend.

El modelo conceptual

El Modelo Conceptual también llamado Capa de Definición de Esquema Conceptual (CSDL) es el modelo de entidad real, contra el cual escribimos nuestras consultas.

El modelo de mapeo

La capa de mapeo es solo un mapeo entre el modelo conceptual y el modelo de almacenamiento.

El esquema lógico y su correspondencia con el esquema físico se representa como un EDM.

  • Visual Studio también proporciona Entity Designer, para la creación visual del EDM y la especificación de mapeo.

  • La salida de la herramienta es el archivo XML (* .edmx) que especifica el esquema y la asignación.

  • El archivo Edmx contiene artefactos de metadatos de Entity Framework.

Lenguaje de definición de esquema

ADO.NET Entity Framework utiliza un lenguaje de definición de datos basado en XML llamado lenguaje de definición de esquema (SDL) para definir el esquema EDM.

  • El SDL define los tipos simples de forma similar a otros tipos primitivos, incluidos String, Int32, Double, Decimal y DateTime, entre otros.

  • Una enumeración, que define un mapa de valores y nombres primitivos, también se considera un tipo simple.

  • Las enumeraciones solo se admiten a partir de la versión 5.0 del marco.

  • Los tipos complejos se crean a partir de una agregación de otros tipos. Una colección de propiedades de estos tipos define un tipo de entidad.

El modelo de datos tiene principalmente tres conceptos clave para describir la estructura de datos:

  • Tipo de entidad
  • Tipo de asociación
  • Property

Tipo de entidad

El tipo de entidad es el bloque de construcción fundamental para describir la estructura de datos en EDM.

  • En un modelo conceptual, los tipos de entidad se construyen a partir de propiedades y describen la estructura de conceptos de nivel superior, como Estudiantes e Inscripciones en una aplicación empresarial.

  • Una entidad representa un objeto específico, como un Estudiante o una Inscripción específicos.

  • Cada entidad debe tener una clave de entidad única dentro de un conjunto de entidades. Un conjunto de entidades es una colección de instancias de un tipo de entidad específico. Los conjuntos de entidades (y los conjuntos de asociaciones) se agrupan lógicamente en un contenedor de entidades.

  • La herencia se admite con tipos de entidad, es decir, un tipo de entidad puede derivarse de otro.

Tipo de asociación

Es otro bloque de construcción fundamental para describir las relaciones en EDM. En un modelo conceptual, una asociación representa una relación entre dos tipos de entidad, como Estudiante e Inscripción.

  • Cada asociación tiene dos extremos de asociación que especifican los tipos de entidad involucrados en la asociación.

  • Cada extremo de asociación también especifica una multiplicidad de extremos de asociación que indica el número de entidades que pueden estar en ese extremo de la asociación.

  • Una multiplicidad de extremos de asociación puede tener un valor de uno (1), cero o uno (0..1) o muchos (*).

  • Se puede acceder a las entidades en un extremo de una asociación a través de las propiedades de navegación o mediante claves externas si están expuestas en un tipo de entidad.

Propiedad

Los tipos de entidad contienen propiedades que definen su estructura y características. Por ejemplo, un tipo de entidad Estudiante puede tener propiedades como Id. De estudiante, Nombre, etc.

Una propiedad puede contener datos primitivos (como una cadena, un número entero o un valor booleano) o datos estructurados (como un tipo complejo).