關聯 End

關聯 End 會識別關聯其中一端的實體類型,以及關聯其中一端可存在的實體類型執行個體數量。 關聯 End 會定義為關聯的部分。關聯必須具有兩個關聯 End。 導覽屬性允許從一個關聯 End 導覽至另一個關聯 End。

關聯 End 定義包含下列資訊:

  • 關聯中相關的其中一個屬性類型。 (必要項)

    注意

    若為指定關聯,各關聯的指定實體類型可以相同。 這樣會建立自我關聯。

  • 關聯 End 多重性表示可在關聯同一端的實體類型執行個體數量。 關聯 End 多重性的值可以是一 (0)、零或一 (0..1),或許多 (*)。

  • 關聯 End 的名稱。 (選擇性)

  • 在關聯 End 中所執行的作業相關資訊,例如刪除時的重疊顯示。 (選擇性)

範例

下圖顯示包含兩個關聯 (PublishedByWrittenBy) 的概念模型。 PublishedBy 關聯的關聯 End 為 BookPublisher 實體類型。 Publisher End 的多重性是 (1),而 Book End 的多重性是許多 (*),表示一個發行者發行許多書籍,而一本書籍由一個發行者發行。

Example model with three entity types

ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的特定領域語言 (DSL) 來定義概念模型。 下列的 CSDL 會定義上圖顯示的 PublishedBy 關聯。 請注意,各個關聯 End 的類型、名稱和多重性是由 XML 屬性 (分別為 TypeRoleMultiplicity 屬性) 指定的。 關於針對其中一端執行之作業的選擇性資訊會在 XML 項目 (OnDelete 項目) 中指定。 在此情況中,如果刪除發行者,也會刪除所有相關的書籍。

  <Association Name="PublishedBy">
    <End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
    <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" >
  <OnDelete Action="Cascade" />
</End>
  </Association>

另請參閱