Navigation Properties (EDM)
In the Entity Data Model (EDM), navigation properties are shortcut properties used to locate the entities at the ends of an association. For more information about associations, see Association (EDM).
Properties contain the information an entity is designed to provide. Navigation properties describe navigable paths between associations. For example, in an association between
Order entities, the
Customer entity can declare a NavigationProperty named
Orders to represent the
Order instances associated with that particular
Customer instance. From an instance of either
Order, the NavigationProperty makes it possible to locate the instance at the other end of the association.
In the EDM, the functionality of collections is implemented by using navigation properties and associations. The NavigationProperty named
Orders on the
Customer entity works like a collection. When the following schema is built, the object model will contain an Add method on the
Orders property. New instances of the
Order entity are added by using the method. The Orders NavigationProperty can be enumerated in loops just like .NET Framework collections.
The following schema excerpt shows how to create navigation properties on the
<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.->
This example shows only the schema definition for navigation properties on
Order. For information about mapping the association and navigation properties to storage, see Implementing Associations (EDM).