导航属性 (EDM)
在 实体数据模型 (EDM) 中,导航属性是快捷方式属性,用于定位位于关联各端的实体。有关关联的更多信息,请参见关联 (EDM)。
属性包含实体要提供的信息。导航属性描述关联之间的可导航路径。例如,在 Customer
实体与 Order
实体之间的关联中,Customer
实体可以声明名为 Orders
的 NavigationProperty,以表示与该特定 Customer
实例关联的 Order
实例。从 Customer
或 Order
的实例中,借助于 NavigationProperty,可以定位位于关联另一端的实例。
在 EDM 中,集合的功能通过使用导航属性和关联来实现。Customer
实体上名为 Orders
的 NavigationProperty 的工作方式类似于集合。当生成以下架构时,对象模型将在 Orders
属性上包含 Add 方法。可以通过使用此方法添加 Order
实体的新实例。可以在循环中枚举 Orders NavigationProperty,就像 .NET Framework 集合一样。
以下架构节选显示如何在 Customer
和 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.->
此示例只显示 Customer
和 Order
上的导航属性的架构定义。有关将关联属性和导航属性映射到存储的信息,请参见实现关联 (EDM)。
另请参见
概念
形成查询结果(实体框架)
关联 (EDM)
架构 (EDM)
NavigationProperty 元素 (EntityType CSDL)