導覽屬性
導覽屬性在實體類型是選擇性屬性,允許從關聯的一端巡覽到另一端。 不同於其他屬性,導覽屬性不會包含資料。
導覽屬性包含下列定義:
名稱。 (必要項)
巡覽的關聯。 (必要項)
巡覽的關聯 End。 (必要項)
在關聯各端點的實體類型上,導覽屬性為選擇性的屬性。 如果您在關聯其中一個端點的實體類型上定義導覽屬性,就不必在關聯另一個端點的實體類型上定義導覽屬性。
導覽屬性資料類型取決於其遠端關聯端的多重性。 例如,假設 OrdersNavProp
實體類型上有一個導覽屬性 Customer
,則該導覽屬性可巡覽 Customer
和 Order
之間一對多的關聯。 因為導覽屬性的遠端關聯端具多重性 (*),因此其資料類型是 (Order
的) 集合。 同樣地,如果 CustomerNavProp
實體類型上有一個導覽屬性 Order
,其資料類型應為 Customer
,因為遠端 End 的多重性是「一 (1)」。
範例
下圖顯示包含三種實體類型 (Book
、Publisher
和 Author
) 的概念模型。 Publisher
與 Authors
導覽屬性均定義於 Book 實體類型。 導覽屬性 Books
在 Publisher 實體類型和 Author
實體類型上定義。
ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的特定領域語言 (DSL) 來定義概念模型。 下列 CSDL 定義上圖所顯示的 Book
實體類型:
<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>
XML 屬性用於傳達定義導覽屬性所需的資訊:Name
屬性包含屬性名稱、Relationship
包含其所巡覽的關聯名稱,而 FromRole
與 ToRole
則包含關聯端。