Propriété de clé étrangère

Une propriété de clé étrangère dans le modèle EDM (Entity Data Model) est une propriété de type primitif (ou un ensemble de propriétés de type primitif) sur un type entité qui contient la clé d’entité d’un autre type entité.

Une propriété de clé étrangère est analogue à une colonne clé étrangère dans une base de données relationnelle. De la même manière que les colonnes de clé étrangère sont utilisées dans une base de données relationnelle pour créer des relations entre les lignes des tables, les propriétés de clé étrangère dans un modèle conceptuel sont utilisées pour établir des associations entre des types entité. Une contrainte d’intégrité référentielle est utilisée pour définir une association entre deux types entité quand un des types a une propriété de clé étrangère.

Exemple

Le diagramme suivant montre un modèle conceptuel avec trois types d'entités : Book, Publisher et Author. Le type d'entité Book a une propriété, PublisherId, qui référence la clé d'entité du type d'entité Publisher lorsque vous définissez une contrainte d'intégrité référentielle sur l'association PublishedBy.

RefConstraintModel

ADO.NET Entity Framework utilise un langage spécifique à un domaine (DSL), appelé CSDL (Conceptual Schema Definition Language), pour définir des modèles conceptuels. Le CSDL suivant utilise la propriété de clé étrangère PublisherId pour définir une contrainte d'intégrité référentielle sur l'association PublishedBy présentée dans le modèle conceptuel ci-dessus.

<Association Name="PublishedBy">
  <End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
  </End>
  <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
  <ReferentialConstraint>
    <Principal Role="Publisher">
      <PropertyRef Name="Id" />
    </Principal>
    <Dependent Role="Book">
      <PropertyRef Name="PublisherId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

Voir aussi