关联类型(实体数据模型)
**“关联类型”(也称为关联)是用来描述实体数据模型 (EDM) 中的关系的基本构造块。 在概念模型中,关联表示两个实体类型(例如 Customer 和 Order)之间的关系。 在应用程序中,一个关联实例表示一个特定的关联(例如 Customer 实例与 Order 实例之间的关联)。 关联实例按逻辑分组在关联集中。
关联定义包含以下信息:
一个唯一名称。 (必需)
两个关联端,关系中的每个实体类型一个。 (必需)
注意: 关联不能表示两个以上的实体类型之间的关系。但是,通过为每个关联端指定相同的实体类型,关联可以定义自身关系。 一个引用完整性约束。 (可选)
每个关联端必须指定一个关联端重数,它表明在关联的一端可以存在的实体类型实例的数量。 关联端重数的值可以为“一 (1)”、“零或一 (0..1)”或“多 (*)”。 通过导航属性或外键(如果实体类型上有)可以访问关联某一端的实体类型实例。 有关更多信息,请参见实体数据模型:外键。
示例
下图显示了一个具有两个关联的概念模型:PublishedBy 和 WrittenBy。 PublishedBy 关联的关联端是 Book 和 Publisher 实体类型。 Publisher 端的重数为“一 (1)”,Book 端的重数为“多 (*)”,表明一个出版商可以出版很多书,而一本书只能由一个出版商出版。
ADO.NET 实体框架使用一种称为概念架构定义语言 (CSDL) 的域特定语言 (DSL) 来定义概念模型。 下面的 CSDL 定义了上图中显示的 PublishedBy 关联:
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>