Association 元素 (CSDL)

Association 元素定义两个实体类型之间的关系。 关联必须指定关系中涉及的实体类型和关系的每一端可能的实体类型数量(也称为重数)。 关联端的重数的值可以为一 (1)、零或一 (0..1) 或多 (*)。 此信息在两个 End 子元素中指定。

通过导航属性或外键(如果在实体类型上公开了外键)可以访问关联一端的实体类型实例。 有关更多信息,请参见 NavigationProperty 元素ReferentialConstraint 元素定义和管理关系(实体框架)

在应用程序中,关联的实例表示实体类型的实例之间的特定关联。 关联实例按逻辑分组在关联集中。 有关更多信息,请参见 AssociationSet 元素

Association 元素可以具有以下子元素(按所列顺序):

适用的特性

下表介绍可应用于 Association 元素的特性。

特性名称 是否必需

Name

关联的名称。

Bb399734.note(zh-cn,VS.100).gif注意:
可以将任何数量的批注特性(自定义 XML 特性)应用于 Association 元素。然而,自定义特性可能不属于为 CSDL 保留的任何 XML 命名空间。任何两个自定义特性的完全限定名称都不能相同。

示例

以下示例演示一个 Association 元素,当外键尚未在 CustomerOrder 实体类型上公开时,该元素定义 CustomerOrders 关联。 关联的每个 EndMultiplicity 值指示多个 Orders 可以与Customer 关联,但只有一个 Customer 可以与 Order 关联。 此外,OnDelete 元素指示:如果删除 Customer,将删除与特定 Customer 相关且已加载到 ObjectContext 中的所有 Orders

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
        <OnDelete Action="Cascade" />
  </End>
</Association>

以下示例演示一个 Association 元素,当外键已在 CustomerOrder 实体类型上公开时,该元素定义 CustomerOrders 关联。 当公开外键后,实体之间的关系通过 ReferentialConstraint 元素进行管理。 将此关联映射到数据源并不需要 AssociationSetMapping 元素

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
         <OnDelete Action="Cascade" />
  </End>
  <ReferentialConstraint>
       <Principal Role="Customer">
           <PropertyRef Name="Id" />
       </Principal>
       <Dependent Role="Order">
            <PropertyRef Name="CustomerId" />
        </Dependent>
  </ReferentialConstraint>
</Association>

另请参见

概念

实体框架概述
CSDL 规范
Schema 元素 (CSDL)

其他资源

CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools
association type (Entity Data Model)