关联集端
关联集端标识位于某个关联集一端的实体类型和实体集。 关联集端定义为关联集的一部分;一个关联集必须有且只有两个关联集端。
关联集端定义包含以下信息:
关联集中涉及的实体类型之一。 (必需)
关联集中涉及的实体类型的实体集。 (必需)
示例
下图显示了一个具有两个关联的概念模型:WrittenBy
和 PublishedBy
。
下图显示了基于上面所示的概念模型的一个关联集 (PublishedBy
) 和两个实体集(Books
和 Publishers
)。 关联集端是 Books
和 Publishers
实体集。 Books
实体集中的 Bi 表示运行时的 Book
实体类型实例。 类似地,Pj 表示 Publishers
实体集中的 Publisher
实例。 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>