共用方式為


導覽屬性 (實體資料模型)

導覽屬性」(Navigation Property) 在實體類型是選擇性的屬性,允許從關聯的其中一個 End 巡覽到另一個 End。 不同於其他屬性,導覽屬性不會包含資料。

導覽屬性包含下列定義:

  • 名稱。 (必要項)

  • 巡覽的關聯。 (必要項)

  • 巡覽的關聯 End。 (必要項)

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

導覽屬性資料類型取決於其遠端關聯 End多重性。 例如,假設 Customer 實體類型上有一個導覽屬性 OrdersNavProp,則該導覽屬性可巡覽 CustomerOrder 之間一對多的關聯。 因為導覽屬性的遠端關聯 End 具有「多 (*)」多重性,因此其資料型別是 (Order 的) 集合。 同樣地,如果 Order 實體類型上有一個導覽屬性 CustomerNavProp,其資料類型應為 Customer,因為遠端 End 的多重性是「一 (1)」。

範例

下圖顯示包含三種實體類型 (BookPublisherAuthor) 的概念模型。 導覽屬性、PublisherAuthors 均在 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 屬性 (attribute) 包含屬性 (property) 的名稱、Relationship 包含它所巡覽之關聯的名稱,而 FromRoleToRole 則包含關聯 End。

另請參閱

概念

實體資料模型索引鍵概念
實體資料模型