Share via


Élément NavigationProperty (EntityType CSDL)

Dans le modèle EDM (Modèle de données d'entité), un élément NavigationProperty déclare un raccourci qui est utilisé pour naviguer vers et depuis les entités liées par le type Association.

Par exemple, si un Association est défini entre un type Employee et un autre type Employee désigné comme responsable, une propriété de navigation peut être spécifiée sur l'entité Employee de manière à naviguer du Employee à son responsable ou du responsable à son employé.

L'extrait suivant du segment Human Relations du schéma AdventureWorksHRModel définit l'entité Employee et le Association entre des entités Employee qui désignent certains employés comme responsables. Notez que le Association est entre des entités du même type mais d'un Role différent.

L'élément Association déclare une association nommée Employee_Employee_ManagerID. Le seul attribut caractéristique des entités Employee aux terminaisons de cette association est l'attribut Role spécifié dans la définition AssociationSet. Le dernier Role spécifie EmployeeManager.

L'attribut Multiplicity des éléments End de la déclaration Association spécifie qu'un Employee peut être le responsable de zéro, un ou plusieurs employés. Un Employee ne peut avoir qu'un seul responsable désigné par le RoleEmployeeManager.

  <EntityType Name="Employee" Key="EmployeeID">
    <Key>
        <PropertyRef Name="EmployeeID">
    </Key>
    <Property Name="EmployeeID" Type="Int32" Nullable="false" />
    <!-- Other properties omitted for brevity-->

<NavigationProperty Name="Employee1" 
Relationship="Adventureworks.FK_Employee_Employee_ManagerID" 
FromRole="Employee" ToRole="Employee1" />  </EntityType>

<NavigationProperty Name="Employee2" 
Relationship="Adventureworks.FK_Employee_Employee_ManagerID" 
FromRole="Employee1" ToRole="Employee" />

  <EntityContainer Name="HumanResources">

    <EntitySet Name="Employee" EntityType="Adventureworks.Employee" />

    <AssociationSet Name="FK_Employee_Employee_ManagerID"
      Association="Adventureworks.FK_Employee_Employee_ManagerID">
        <End Role="Employee" EntitySet="Employee" />
        <End Role="Employee1" EntitySet="Employee" />
    </AssociationSet>

  </EntityContainer>

Le NavigationProperty est un raccourci vers l'entité Employee qui est responsable de l'entité Employee contenant le NavigationProperty. Lorsque le modèle objet reposant sur ces spécifications est généré, la classe Employee inclut une propriété Manager et des méthodes d'assistance utilisées pour naviguer dans l'association désignée par le NavigationProperty. Les méthodes d'assistance sont générées automatiquement avec le modèle objet.

Les propriétés de navigation peuvent être utilisées pour implémenter des propriétés qui fonctionnent comme des collections dans le code. Pour plus d'informations sur les propriétés de navigation et les collections, voir Propriétés de navigation (EDM).

L'élément NavigationProperty est utilisé uniquement dans le langage CSDL (Conceptual Schema Definition Language). Il existe un équivalent dans les métadonnées SSDL (Store Schema Definition Language) pour spécifier des relations de clé primaire/clé étrangère dans la base de données qui prennent en charge cette association. Dans les métadonnées, cette association inclut une contrainte référentielle. Pour plus d'informations sur l'attribut ReferentialConstraint, voir Élément ReferentialConstraint (Association SSDL) et Élément Association (SSDL).

Voir aussi

Concepts

Relations du modèle Entity Data Model
Élément Association (CSDL)
Attribut Multiplicity (Association CSDL)
Modèle complet AdventureWorks (EDM)
Propriétés de navigation (EDM)
Élément Association (SSDL)
Élément ReferentialConstraint (Association SSDL)