2016-08-01 37 views
0

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?

Antwort

0

ich ein MS Löst Fall (mit MSDN Lisence) geöffnet und nach einem Monat für ihre Antwort zu warten, schrieb sie mir die nächste:

ich tat etwas Forschung und mit einem unserem Team besprochen hatte Mitglied in PG und dies scheint ein Design-Problem ab sofort sein.

Ich ging durch die Fehlersuche und Vorschlag:

Vielen Dank für Sie Feedback zu diesem Thema. Zu diesem Zeitpunkt werde ich einen DCR (Design Change Request) einreichen, um zu sehen, ob sie diese Funktionalität in der nächsten Version berücksichtigen können.

Dann hat es im Moment keine Lösung.