NavigationProperty 項目 (CSDL)

NavigationProperty 項目定義導覽屬性,提供關聯另一個端點的參考。 與使用 Property 項目 定義的屬性不同,導覽屬性不會定義資料的圖案和特性。 他們提供巡覽兩個實體類型間之關聯的方式。

請注意,在關聯各端點的實體類型上,導覽屬性是選擇性的。 如果您在關聯其中一個端點的實體類型上定義導覽屬性,就不必在關聯另一個端點的實體類型上定義導覽屬性。

導覽屬性傳回的資料類型是由其遠端關聯端點的多重性所判斷。 例如,假設 Customer 實體類型上有一個導覽屬性 OrdersNavProp,則該導覽屬性可巡覽 CustomerOrder 之間一對多的關聯。 因為導覽屬性的遠端關聯端點有多重性 - 多 (*),其資料型別是 (Order 的) 集合 . 同樣地,如果 Order 實體類型上有一個導覽屬性 CustomerNavProp,其資料類型應為 Customer,因為遠端端點的多重性是一 (1)。

NavigationProperty 項目可以擁有下列子項目 (依列出的順序):

適用屬性

以下資料表描述的屬性可套用至 NavigationProperty 項目。

屬性名稱 必要

Name

導覽屬性的名稱。

Relationship

關聯的名稱在模型的範圍之內。

ToRole

位於導覽端點的關聯端點。 ToRole 屬性的值必須與在其中一個關聯端點 (定義於 AssociationEnd 項目) 上定義的其中一個 Role 屬性值相同。

FromRole

開始導覽的關聯端點。 FromRole 屬性的值必須與在其中一個關聯端點 (定義於 AssociationEnd 項目) 上定義的其中一個 Role 屬性值相同。

Bb387104.note(zh-tw,VS.100).gif注意:
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 NavigationProperty 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。

範例

下列範例定義實體類型 (Book) 和兩個導覽屬性 (PublishedByWrittenBy):

<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)