共用方式為


導覽屬性

導覽屬性實體類型是選擇性屬性,允許從關聯的一巡覽到另一端。 不同於其他屬性,導覽屬性不會包含資料。

導覽屬性包含下列定義:

  • 名稱。 (必要項)

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

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

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

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

範例

下圖顯示包含三種實體類型 (BookPublisherAuthor) 的概念模型。 PublisherAuthors 導覽屬性均定義於 Book 實體類型。 導覽屬性 Books 在 Publisher 實體類型和 Author 實體類型上定義。

Diagram showing a conceptual model with three entity types.

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 包含其所巡覽的關聯名稱,而 FromRoleToRole 則包含關聯端。

另請參閱