OnDelete 元素 (SSDL)

以存储架构定义语言 (SSDL) 表示的 OnDelete 元素反映当参与外键约束的行被删除时的数据库行为。 如果将 Action 设置为 Cascade,则还将删除引用要删除行的行。 如果将 Action 设置为 None,则不删除引用要删除行的行。 OnDelete 元素是 End 元素的子元素。

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

适用的特性

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

特性名称 是否必需

Action

CascadeNone。 (值 Restricted 有效,但与 None 具有相同的行为。)

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

示例

下面的示例显示用于定义 FK_CustomerOrders 外键约束的 Association 元素。 OnDelete 元素指示:如果删除 Customers 表中的行,则将删除 Orders 表中引用 Customers 表中特定行的所有行。

<Association Name="FK_CustomerOrders">
  <End Role="Customers" 
       Type="ExampleModel.Store.Customers" Multiplicity="1">
    <OnDelete Action="Cascade" />
  </End>
  <End Role="Orders" 
       Type="ExampleModel.Store.Orders" Multiplicity="*" />
  <ReferentialConstraint>
    <Principal Role="Customers">
      <PropertyRef Name="CustomerId" />
    </Principal>
    <Dependent Role="Orders">
      <PropertyRef Name="CustomerId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

另请参见

概念

实体框架概述
SSDL 规范

其他资源

CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools