Ich habe ein Problem, ein DataSet mit selbstbezogenen Tabellen ablehnen.RejectChanges Self-Relation in DataSet
Zuerst füge ich eine übergeordnete Zeile und eine untergeordnete Zeile in eine Tabelle ein. Dann rufe ich die RejectChanges-Methode aus dem Tabellenobjekt oder der gleichen Methode aus dem DataSet auf. Die RejectChagnes-Methode gibt RowNotInTableException aus.
Dies ist der Code, um diese (TestRejectChanges.zip) verdeutlichen soll:
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();
I tryed RejectChanges von Datatable außer Kraft zu setzen, aber diese Methode ist nicht virtuell. Gibt es eine Möglichkeit, dies mithilfe von RejectChanges von DataSet zu tun?