Partager via


Propriétés de navigation (EDM)

Dans le modèle EDM (Modèle de données d'entité), les propriétés de navigation sont des propriétés de raccourci utilisées pour rechercher les entités situées aux terminaisons d'une association. Pour plus d'informations sur les associations, voir Association (EDM).

Les propriétés contiennent les informations qu'une entité doit fournir. Les propriétés de navigation décrivent les chemins d'accès explorables entre les associations. Par exemple, dans une association entre les entités Customer et Order, l'entité Customer peut déclarer un objet NavigationProperty nommé Orders pour représenter les instances de Order associées à cette instance particulière de Customer. À partir d'une instance de Customer ou de Order, l'objet NavigationProperty permet de localiser l'instance à l'autre terminaison de l'association.

Dans le modèle EDM, la fonctionnalité des collections est mise en œuvre au moyen de propriétés de navigation et d'associations. L'objet NavigationProperty nommé Orders sur l'entité Customer fonctionne comme une collection. Lorsque le schéma suivant est créé, le modèle objet contiendra une méthode Add sur une propriété Orders. Les nouvelles instances de l'entité Order sont ajoutées à l'aide de la méthode. L'objet Orders NavigationProperty peut être énuméré dans des boucles de la même manière que les collections .NET Framework.

L'extrait de schéma suivant montre comment créer des propriétés de navigation sur les entités Customer et Order :

<EntityType Name="Customer" >
    <Key>
      <PropertyRef Name=" CustomerId " />
    </Key>
    <Property Name="CustomerId" Type="Guid" Nullable="false" />
    ...
    <NavigationProperty Name="Orders" Relationship=Namespace.CustomerOrderType"
          FromRole="Customer" ToRole="Orders"/>
</EntityType>

<EntityType Name="Order" Key="OrderId">
    ...
    <NavigationProperty Name="OrderedBy" Relationship="Namespace.Customer_Order"
          FromRole="Order" ToRole="Customer" />
</EntityType>

<Association Name="Customer_Order">
    <End Role="Customer" Type="Namespace.Customers" Multiplicity="1" />
    <End Role="Orders" Type="Namespace.Order" Multiplicity="0..*" />
</Association>
<!— Use a fully qualified name for the association in a Navigation Property.->

Cet exemple montre uniquement la définition de schéma pour les propriétés de navigation sur Customer et Order. Pour plus d'informations sur le mappage des propriétés d'association et de navigation au stockage, voir Implémentation d'associations (EDM).

Voir aussi

Concepts

Mise en forme des résultats de requête (Entity Framework)
Association (EDM)
Schémas (EDM)
Élément NavigationProperty (EntityType CSDL)

Autres ressources

Schémas et spécification de mappage (Entity Framework)