OnDelete 元素 (SSDL)
以存储架构定义语言 (SSDL) 表示的 OnDelete 元素反映当参与外键约束的行被删除时的数据库行为。 如果将 Action 设置为 Cascade,则还将删除引用要删除行的行。 如果将 Action 设置为 None,则不删除引用要删除行的行。 OnDelete 元素是 End 元素的子元素。
OnDelete 元素可以具有以下子元素(按所列顺序):
Documentation(零个或一个)
批注元素(零个或多个)
适用的特性
下表介绍可应用于 OnDelete 元素的特性。
特性名称 | 是否必需 | 值 |
---|---|---|
Action |
是 |
Cascade 或 None。 (值 Restricted 有效,但与 None 具有相同的行为。) |
注意: |
---|
可以将任何数量的批注特性(自定义 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>