關聯集 End (實體資料模型)
「關聯集 End」(Association Set End) 可識別關聯集 End 的實體類型和實體集。 關聯集 End 會定義為關聯集的部分。一個關聯集必須擁有兩個關聯集 End。
關聯集 End 定義包含下列資訊:
關聯集中相關的其中一個屬性類型。 (必要項)
關聯集中相關實體類型的實體集。 (必要項)
範例
下圖顯示包含兩個關聯 (WrittenBy 和 PublishedBy) 的概念模型。
下圖顯示以前述概念模型為基礎的一個關聯集 (PublishedBy) 和兩個實體集 (Books 和 Publishers)。 關聯集 End 為 Books 和 Publishers 實體集。 Books 實體集中的 Bi 代表執行階段時的 Book 實體類型執行個體。 同樣地,Pj 則代表 Publishers 實體集中的 Publisher 執行個體。 BiPj 代表 PublishedBy 關聯集內的 PublishedBy 關聯執行個體。
ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的 DSL 來定義概念模型。 下列 CSDL 定義上圖所示之實體實體容器,每個關聯具有一個關聯集。 請注意,關聯集 End 會定義為每個關聯集定義的一部分。
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
</EntityContainer>