End 元素 (CSDL)

以概念架构定义语言 (CSDL) 表示的 End 元素可以是 Association 元素AssociationSet 元素的子元素。 在每一种情况下,End 元素的角色不同,适用的特性也不同。

End 元素作为 Association 元素的子元素

End 元素(作为 Association 元素的子元素)标识关联一端的实体类型以及关联的该端上可以存在的实体类型实例数量。 关联端定义为关联的一部分;关联必须正好有两个关联端。 通过导航属性或外键(如果在实体类型上公开了外键)可以访问关联一端的实体类型实例。 有关更多信息,请参见 NavigationProperty 元素ReferentialConstraint 元素定义和管理关系(实体框架)

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

适用的特性

下表介绍可应用于 End 元素(如果该元素是 Association 元素的子元素)的特性。

特性名称 是否必需

Type

关联一端的实体类型的名称。

Role

关联端的名称。 如果不提供名称,将使用关联端的实体类型的名称。

Multiplicity

10..1*,具体取决于关联端可以存在的实体类型实例的数量。

  • 1,表明在关联端就存在一个实体类型实例。

  • 0..1 ,表明在关联端存在零个或一个实体类型实例。

  • *,表明在关联端存在零个、一个或多个实体类型实例。

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

示例

下面的示例显示用于定义 CustomerOrders 关联的 Association 元素。 关联的每个 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>

End 元素作为 AssociationSet 元素的子元素

End 元素指定关联集的一端。 AssociationSet 元素必须包含两个 End 元素。 End 元素中包含的信息用于将关联集映射到数据源。 有关更多信息,请参见AssociationSetMapping 元素 (MSL)EndProperty 元素 (MSL)

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

Bb896235.note(zh-cn,VS.100).gif注意:
Annotation 元素必须出现在所有其他子元素之后。批注元素只能用在面向 .NET Framework 版本 4 或更高版本的应用程序的概念模型中。此类模型的 XML 命名空间为 https://schemas.microsoft.com/ado/2008/09/edm。

适用的特性

下表介绍可应用于 End 元素(如果该元素是 AssociationSet 元素的子元素)的特性。

特性名称 是否必需

EntitySet

EntitySet 元素的名称,该元素用于定义父 AssociationSet 元素的一端。 EntitySet 元素必须与父 AssociationSet 元素在同一实体容器中定义。

Role

关联集端的名称。 如果不使用 Role 特性,关联集端的名称将为实体集的名称。

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

示例

下面的示例显示具有两个 AssociationSet 元素的 EntityContainer 元素,其中每个 AssociationSet 元素还具有两个 End 元素:

<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>

另请参见

概念

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

其他资源

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