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 Customer and 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 Customer or 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 Customer and Order entities:

<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 Customer and Order. For information about mapping the association and navigation properties to storage, see Implementing Associations (EDM).

See Also

Concepts

Shaping Query Results (Entity Framework)
Association (EDM)
Schemas (EDM)
NavigationProperty Element (EntityType CSDL)

Other Resources

Schemas and Mapping Specification (Entity Framework)