【发布时间】:2018-02-01 09:45:52
【问题描述】:
在我的数据集中,我有两个来自 XML 和 XSD 定义的表:
- 注册
- 类型
还有一对多的关系
<xs:keyref name="RegisterForeingKey" refer="myXsd:TypeKey">
<xs:selector xpath="Register"/>
<xs:field xpath="TypeID"/>
</xs:keyref>
这意味着Registers只有一个Type,一个Type可以被多个Register引用。
当我删除一个寄存器时,如果它是孤立的,我想清理关联的类型(清理没有关联的类型)。 msdata:DeleteRule="Cascade" 是最好的选择吗?
谁能给我一个简单的例子来说明如何在 XSD 上实现它?
我尝试将此添加到关系中
<xs:keyref name="RegisterForeingKey" refer="myXsd:TypeKey" msdata:DeleteRule="Cascade" msdata:EnforceConstraints="true">
<xs:selector xpath="Register"/>
<xs:field xpath="TypeID"/>
</xs:keyref>
并像这样删除它dataSrc.Tables["Register"].Rows.RemoveAt(rowIndex); dataSrc.AcceptChanges();
但它不会清理孤儿
【问题讨论】:
标签: c# xsd dataset delete-row cascading-deletes