实体容器(实体数据模型)
对于在概念模型中定义的实体容器,必须满足以下条件:
在每个概念模型中必须至少定义一个实体容器。
每个概念模型中的实体容器必须有唯一的名称。
实体容器可以定义使用在一个或多个命名空间中定义的实体类型或关联的实体集或关联集。 有关更多信息,请参见实体数据模型:命名空间。
示例
下图显示了一个具有三个实体类型的概念模型:Book、Publisher 和 Author。 有关更多信息,请参见下一个示例。
虽然该图没有传达实体容器信息,但概念模型必须定义一个实体容器。 ADO.NET 实体框架使用一种称为概念架构定义语言 (CSDL) 的 DSL 来定义概念模型。 下面的 CSDL 为上图所示的概念模型定义了一个实体容器。 请注意,实体容器名称是在一个 XML 特性中定义的。
<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>