2016-08-01 5 views
0

J'ai un problème lors du rejet d'un DataSet avec des tables auto-reliées.RejetChanges Auto-relation dans DataSet

D'abord, j'insère une ligne parente et une ligne enfant dans une table. Ensuite, j'appelle la méthode RejectChanges de l'objet table ou de la même méthode à partir du DataSet. La méthode RejectChagnes renvoie RowNotInTableException.

Ceci est le code à demostrate ce (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(); 

I tryed pour remplacer RejectChanges de DataTable mais cette méthode est non virtuelle. Est-il possible de le faire en utilisant RejectChanges of DataSet?

Répondre

0

J'ai ouvert un MS Solve Case (en utilisant MSDN lisence) et, après un mois d'attendre leur réponse, ils me ont écrit suivant:

je fait quelques recherches et avait discuté avec un de notre équipe membre dans PG et cela semble être un problème de conception à partir de maintenant.

Je suis passé par votre dépannage et suggestion:

Merci beaucoup pour vous des commentaires sur cette question. À ce moment, je vais déposer une DCR (Design Change Request) pour voir si elles peuvent considérer cette fonctionnalité dans la version à venir.

Ensuite, il n'a pas de solution pour l'instant.