我正在尝试合并两个DataTable
s - 一个代表当前数据,一个代表对该数据的建议插入。
这些表具有相同的架构,都具有简单的用户提供的主键字符串。
我想要的是,如果建议的插入行具有当前数据中已经存在的键,则应该抛出错误。然而,提议的添加只是被合并为对现有行的提议更改,这不是我想要的。
我当前的代码类似于
currentData.EnforceConstraints = false;
currentData.Merge(additions);
currentData.EnforceConstraints = true;
我实际上是在合并整个DataSet
s,而不仅仅是DataTable
s。我希望EnforceConstraints = true
在线上出现错误,但我没有。
我也尝试使用 diffgrams,但遇到了同样的问题 - 重复插入被视为修改。
有没有办法将一组插入合并到 a 中DataSet
并将重复的 PK 视为错误而不是更新?
同样,由于modified DataRow
s 记住它们的原始值,我希望合并原始值与目标行的当前值不匹配的修改行也会引发异常。