NavigationProperty 項目 (CSDL)
NavigationProperty 項目定義導覽屬性,提供關聯另一個端點的參考。 與使用 Property 項目 定義的屬性不同,導覽屬性不會定義資料的圖案和特性。 他們提供巡覽兩個實體類型間之關聯的方式。
請注意,在關聯各端點的實體類型上,導覽屬性是選擇性的。 如果您在關聯其中一個端點的實體類型上定義導覽屬性,就不必在關聯另一個端點的實體類型上定義導覽屬性。
導覽屬性傳回的資料類型是由其遠端關聯端點的多重性所判斷。 例如,假設 Customer 實體類型上有一個導覽屬性 OrdersNavProp,則該導覽屬性可巡覽 Customer 和 Order 之間一對多的關聯。 因為導覽屬性的遠端關聯端點有多重性 - 多 (*),其資料型別是 (Order 的) 集合 . 同樣地,如果 Order 實體類型上有一個導覽屬性 CustomerNavProp,其資料類型應為 Customer,因為遠端端點的多重性是一 (1)。
NavigationProperty 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個項目)
Annotation 項目 (零或多個項目)
適用屬性
以下資料表描述的屬性可套用至 NavigationProperty 項目。
屬性名稱 | 必要 | 值 |
---|---|---|
Name |
是 |
導覽屬性的名稱。 |
Relationship |
是 |
關聯的名稱在模型的範圍之內。 |
ToRole |
是 |
位於導覽端點的關聯端點。 ToRole 屬性的值必須與在其中一個關聯端點 (定義於 AssociationEnd 項目) 上定義的其中一個 Role 屬性值相同。 |
FromRole |
是 |
開始導覽的關聯端點。 FromRole 屬性的值必須與在其中一個關聯端點 (定義於 AssociationEnd 項目) 上定義的其中一個 Role 屬性值相同。 |
注意: |
---|
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 NavigationProperty 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例定義實體類型 (Book) 和兩個導覽屬性 (PublishedBy 與 WrittenBy):
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
另請參閱
概念
Entity Framework 概觀
CSDL 規格
Schema 項目 (CSDL)
其他資源
CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools
navigation property (Entity Data Model)