Entity Framework - Modèle de données

Le modèle de données d'entité (EDM) est une version étendue du modèle d'entité-relation qui spécifie le modèle conceptuel des données à l'aide de diverses techniques de modélisation. Il fait également référence à un ensemble de concepts qui décrivent la structure des données, quelle que soit sa forme stockée.

EDM prend en charge un ensemble de types de données primitifs qui définissent des propriétés dans un modèle conceptuel. Nous devons considérer 3 parties principales qui forment la base d'Entity Framework et collectivement, elles sont connues sous le nom de Entity Data Model. Voici les trois parties principales de l'EDM.

  • Le modèle de schéma de stockage
  • Le modèle conceptuel
  • Le modèle de cartographie

Le modèle de schéma de stockage

Le modèle de stockage également appelé couche de définition de schéma de stockage (SSDL) représente la représentation schématique du magasin de données backend.

Le modèle conceptuel

Le modèle conceptuel également appelé couche de définition de schéma conceptuel (CSDL) est le modèle d'entité réel, sur lequel nous écrivons nos requêtes.

Le modèle de cartographie

La couche de mappage n'est qu'un mappage entre le modèle conceptuel et le modèle de stockage.

Le schéma logique et son mappage avec le schéma physique sont représentés comme un EDM.

  • Visual Studio fournit également Entity Designer, pour la création visuelle de l'EDM et de la spécification de mappage.

  • La sortie de l'outil est le fichier XML (* .edmx) spécifiant le schéma et le mappage.

  • Le fichier Edmx contient des artefacts de métadonnées Entity Framework.

Langage de définition de schéma

ADO.NET Entity Framework utilise un langage de définition de données basé sur XML appelé Schema Definition Language (SDL) pour définir le schéma EDM.

  • Le SDL définit les types simples de la même manière que les autres types primitifs, notamment String, Int32, Double, Decimal et DateTime.

  • Une énumération, qui définit une carte de valeurs et de noms primitifs, est également considérée comme un type simple.

  • Les énumérations sont prises en charge à partir de la version 5.0 du framework uniquement.

  • Les types complexes sont créés à partir d'une agrégation d'autres types. Une collection de propriétés de ces types définit un type d'entité.

Le modèle de données a principalement trois concepts clés pour décrire la structure des données -

  • Type d'entité
  • Type d'association
  • Property

Type d'entité

Le type d'entité est le bloc de construction fondamental pour décrire la structure des données dans EDM.

  • Dans un modèle conceptuel, les types d'entités sont construits à partir de propriétés et décrivent la structure des concepts de niveau supérieur, tels que les étudiants et les inscriptions dans une application métier.

  • Une entité représente un objet spécifique tel qu'un étudiant ou une inscription spécifique.

  • Chaque entité doit avoir une clé d'entité unique dans un ensemble d'entités. Un ensemble d'entités est une collection d'instances d'un type d'entité spécifique. Les ensembles d'entités (et les ensembles d'associations) sont regroupés logiquement dans un conteneur d'entités.

  • L'héritage est pris en charge avec les types d'entité, c'est-à-dire qu'un type d'entité peut être dérivé d'un autre.

Type d'association

C'est un autre élément fondamental pour décrire les relations dans l'EDM. Dans un modèle conceptuel, une association représente une relation entre deux types d'entités tels que Student et Enrollment.

  • Chaque association a deux extrémités d'association qui spécifient les types d'entités impliqués dans l'association.

  • Chaque extrémité d'association spécifie également une multiplicité de fin d'association qui indique le nombre d'entités qui peuvent se trouver à cette extrémité de l'association.

  • Une multiplicité de fin d'association peut avoir une valeur de un (1), zéro ou un (0..1) ou plusieurs (*).

  • Les entités à une extrémité d'une association sont accessibles via les propriétés de navigation, ou via des clés étrangères si elles sont exposées sur un type d'entité.

Propriété

Les types d'entité contiennent des propriétés qui définissent leur structure et leurs caractéristiques. Par exemple, un type d'entité étudiant peut avoir des propriétés telles que l'ID étudiant, le nom, etc.

Une propriété peut contenir des données primitives (telles qu'une chaîne, un entier ou une valeur booléenne) ou des données structurées (telles qu'un type complexe).