Élément PropertyRef (CSDL)

L'élément PropertyRef dans le langage CSDL (Conceptual Schema Definition Language) référence une propriété d'un type d'entité pour indiquer que la propriété effectuera l'un des rôles suivants :

  • Partie de la clé de l'entité (une propriété ou un jeu de propriétés d'un type d'entité qui détermine l'identité). Un ou plusieurs éléments PropertyRef peuvent être utilisés pour définir une clé d'entité. Pour plus d'informations, consultez Élément Key.

  • Terminaison dépendante ou principale d'une contrainte référentielle. Pour plus d'informations, consultez Élément ReferentialConstraint.

L'élément PropertyRef peut avoir uniquement des éléments d'annotation (zéro ou plus) comme éléments enfants.

Ee473439.note(fr-fr,VS.100).gifRemarque :
Les éléments d'annotation sont autorisés uniquement dans les modèles conceptuels pour les applications qui ciblent le .NET Framework version 4 ou ultérieure.L'espace de noms XML de tels modèles est https://schemas.microsoft.com/ado/2008/09/edm.

Attributs applicables

Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément PropertyRef.

Nom d'attribut Requis Valeur

Name

Oui

Nom de la propriété référencée.

Ee473439.note(fr-fr,VS.100).gifRemarque :
Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément PropertyRef.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 ci-dessous définit un type d'entité (Book). La clé d'entité est définie en référençant la propriété ISBN du type d'entité.

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

Dans l'exemple suivant, deux éléments PropertyRef sont utilisés pour indiquer que deux propriétés (Id et PublisherId) sont les terminaisons principale et dépendante d'une contrainte référentielle.

<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)

Autres ressources

Spécifications CSDL, SSDL et MSL
ADO.NET Entity Data Model Tools
entity key (Entity Data Model)