ReferentialConstraint 元素 (CSDL)

概念架构定义语言 (CSDL) 中的 ReferentialConstraint 元素定义的功能与关系数据库中的引用完整性约束类似。 与数据库表中的一个(或多个)列可以引用另一个表的主键相同,实体类型的一个(或多个)属性可以引用另一个实体类型的实体键。 所引用的实体类型称为约束的主体端**。 引用主体端的实体类型称为约束的依赖端**。

如果在一个实体类型上公开的外键引用另一个实体类型的属性,则 ReferentialConstraint 元素定义这两个实体类型之间的关联。 因为 ReferentialConstraint 元素提供有关两个实体类型如何关联的信息,所以没必要使用映射规范语言 (MSL) 提供对应的 AssociationSetMapping 元素。 两个没有公开外键的实体类型之间的关联必须具有对应的 AssociationSetMapping 元素才能将关联信息映射到数据源。

如果外键没有在某个实体类型上公开,则 ReferentialConstraint 元素只能定义该实体类型与另一个实体类型之间的主键对主键约束。

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

适用的特性

ReferentialConstraint 元素可以具有任意数量的批注特性(自定义 XML 特性)。 然而,自定义特性可能不属于为 CSDL 保留的任何 XML 命名空间。 两个自定义特性的完全限定名不能相同。

示例

下面的示例显示用作 PublishedBy 关联定义的一部分的 ReferentialConstraint 元素。

<Association Name="PublishedBy">
  <End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
  </End>
  <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
  <ReferentialConstraint>
    <Principal Role="Publisher">
      <PropertyRef Name="Id" />
    </Principal>
    <Dependent Role="Book">
      <PropertyRef Name="PublisherId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

另请参见

概念

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

其他资源

CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)