Élément ReferentialConstraint (CSDL)

Un élément ReferentialConstraint dans le langage CSDL (Conceptual Schema Definition Language) définit des fonctionnalités qui sont semblables à une contrainte d'intégrité référentielle dans une base de données relationnelle. De la même manière qu'une ou plusieurs colonnes d'une table de base de données peuvent référencer la clé primaire d'une autre table, une ou plusieurs propriétés d'un type d'entité peuvent référencer la clé d'entité d'un autre type d'entité. Le type d'entité référencé est appelé terminaison principale de la contrainte. Le type d'entité qui référence la terminaison principale est appelé terminaison dépendante de la contrainte.

Si une clé étrangère exposée sur un type d'entité référence une propriété sur un autre type d'entité, l'élément ReferentialConstraint définit une association entre les deux types d'entités. Étant donné que l'élément ReferentialConstraint fournit des informations sur la manière dont deux types d'entités sont liés, aucun élément AssociationSetMapping correspondant n'est nécessaire dans le langage MSL (Mapping Specification Language). Une association entre deux types d'entités qui n'ont pas de clés étrangères exposées doit avoir un élément AssociationSetMapping correspondant afin de mapper les informations d'association à la source de données.

Si une clé étrangère n'est pas exposée sur un type d'entité, l'élément ReferentialConstraint peut définir uniquement une contrainte de clé primaire à clé primaire entre le type d'entité et un autre type d'entité.

Un élément ReferentialConstraint peut avoir les éléments enfants suivants (dans l'ordre répertorié) :

Attributs applicables

L'élément ReferentialConstraint peut avoir un nombre quelconque d'attributs d'annotation (attributs XML personnalisés). Toutefois, les attributs personnalisés ne peuvent pas appartenir à un espace de noms XML réservé pour le langage CSDL. Les noms qualifiés complets de deux attributs personnalisés quelconques ne peuvent pas être identiques.

Exemple

L'exemple suivant illustre un élément ReferentialConstraint qui est utilisé dans le cadre de la définition de l'association PublishedBy.

<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

Concepts

Vue d'ensemble d'Entity Framework
Spécification CSDL
Élément Schema (CSDL)
Élément Association (CSDL)

Autres ressources

Spécifications CSDL, SSDL et MSL
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)