Élément NavigationProperty (CSDL)

Un élément NavigationProperty définit une propriété de navigation, qui fournit une référence à l'autre terminaison d'une association.Contrairement aux propriétés définies à l'aide de l'élément Property, les propriétés de navigation ne définissent pas la forme et les caractéristiques des données.Elles fournissent un moyen d'explorer une association entre deux types d'entités.

Notez que les propriétés de navigation sont facultatives sur les deux types d'entités au niveau des terminaisons d'une association.Si vous définissez une propriété de navigation sur un type d'entité au niveau de la terminaison d'une association, il n'est pas nécessaire de définir une propriété de navigation sur le type d'entité à l'autre terminaison de l'association.

Le type de données retourné par une propriété de navigation est déterminé par la multiplicité de sa terminaison d'association distante.Par exemple, considérez une propriété de navigation, OrdersNavProp, qui existe sur un type d'entité Customer et qui navigue dans une association un-à-plusieurs entre Customer et Order.Étant donné que la terminaison d'association distante pour la propriété de navigation a une multiplicité égale à plusieurs (*), son type de données est une collection (d'Order).De même, si une propriété de navigation, CustomerNavProp, existe sur le type d'entité Order, son type de données sera Customer, car la multiplicité de la terminaison distante est un (1).

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

Attributs applicables

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

Nom d'attribut

Requis

Value

Name

Oui

Nom de la propriété de navigation.

Relationship

Oui

Nom d'une association figurant dans l'étendue du modèle.

ToRole

Oui

Terminaison de l'association à laquelle la navigation prend fin.La valeur de l'attribut ToRole doit être égale à la valeur de l'un des attributs Role définis au niveau d'une des terminaisons de l'association (définie dans l'élément AssociationEnd).

FromRole

Oui

Terminaison de l'association où la navigation commence.La valeur de l'attribut FromRole doit être égale à la valeur de l'un des attributs Role définis au niveau d'une des terminaisons de l'association (définie dans l'élément AssociationEnd).

Notes

Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément NavigationProperty.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 définit un type d'entité (Book) avec deux propriétés de navigation (PublishedBy et WrittenBy) :

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

Voir aussi

Concepts

Vue d'ensemble d'Entity Framework

Spécification CSDL

Élément Schema (CSDL)

propriété de navigation

Autres ressources

Spécifications CSDL, SSDL et MSL

ADO.NET Entity Data Model Tools