0

我在拒绝带有自相关表的 DataSet 时遇到问题。

首先,我在表中插入父行和子行。然后我从表对象中调用 RejectChanges 方法或从 DataSet 中调用相同的方法。RejectChagnes 方法抛出 RowNotInTableException。

这是演示这一点的代码(TestRejectChanges.zip):

DataSet dataSet = new DataSet();

//Parent row
DataSet.TABLERow parentRowOverDataSet = dataSet.TABLE.AddTABLERow(1, "Parent", null);

//Child row
dataSet.TABLE.AddTABLERow(2, "Child", parentRowOverDataSet);

//This line crash because the child row is detached before Rolback (in RejectChanges method code)
dataSet.TABLE.RejectChanges();

//Also crash
//foreach (DataSet.TABLERow row in dataSet.TABLE.ToList())
//{
//    row.RejectChanges();
//}

//Also crash
//dataSet.RejectChanges();

我试图覆盖 DataTable 的 RejectChanges 但这个方法不是虚拟的。有没有办法使用 DataSet 的 RejectChanges 来做到这一点?

4

1 回答 1

0

我打开了一个 MS Solve Case(使用 MSDN Lisence),在等待他们的回复一个月后,他们给我写了下一个:

我做了一些研究,并与我们在 PG 的一位团队成员讨论过,这似乎是一个设计问题。

我经历了您的故障排除和建议:

非常感谢您对此问题的反馈。此时,我将提交 DCR(设计变更请求),看看他们是否可以在即将发布的版本中考虑此功能。

然后它暂时没有解决方案。

于 2016-09-15T11:10:18.183 回答