关联集端用于标识关联集末尾的实体类型和实体集。 关联集合端点是关联集合的一部分;一个关联集合必须正好有两个关联集合端点。
关联集端定义包含以下信息:
关联集中涉及的实体类型之一。 (必需)
关联集中涉及的实体类型的实体集。 (必需)
示例:
下图显示了一个概念模型,其中包含两个关联: WrittenBy 和 PublishedBy。
下图展示了一个关联集(PublishedBy)和两个实体集(Books 与 Publishers),它们基于上面所示的概念模型。 关联集端是 Books 和 Publishers 实体集。 实体集中的 Books Bi 表示运行时实体类型的实例 Book 。 同样,Pj 表示 Publisher 实体集中的 Publishers 实例。 BiPj 表示PublishedBy关联集中的PublishedBy关联实例。
ADO.NET 实体框架使用称为概念架构定义语言 (CSDL) 的 DSL 来定义概念模型。 以下 CSDL 定义一个实体容器,该容器为上图中的每个关联设置一个关联集。 请注意,关联集端点是每个关联集定义的一部分。
<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>