RejectChanges DataSet中的自我关系

时间:2016-08-01 17:16:55

标签: c# datatable dataset rollback self-referencing-table

我在使用自相关表拒绝DataSet时遇到问题。

首先,我在表格中插入父行和子行。然后我从表对象或DataSet中的相同方法调用RejectChanges方法。 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来做到这一点?

1 个答案:

答案 0 :(得分:0)

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

  

我做了一些研究,并与我们的一名团队成员讨论过   PG和这似乎是一个设计问题,截至目前。

     

我完成了您的问题排查和建议:

     

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

那时它暂时没有解决方案。