J'utilise service Silverlight4 et Ria:rejette un élément supprimé particulier d'un DomainContext
Imaging, nous avons une table (appelée "MyTable") avec 3 disques (1, 2, 3), je viens écrit les codes suivants quelque part dans ma demande:
CurrentItem = 1;
MyContext.MyTables.Delete(CurrentItem);
CurrentItem = 2;
MyContext.MyTables.Delete(CurrentItem);
pour certaines raisons, avant de frapper le bouton « Enregistrer », je veux rejeter le premier élément supprimé (1), mais toujours vouloir supprimer le second (2) .it signifie que je ne peux pas utiliser:
MyContext.RejectChanges()
Parce qu'il va rejeter toutes les modifications (y compris l'élément supprimé qui ce que je veux supprimer) si je pensais, à l'aide IRevertibleChangeTracking peut résoudre mon problème .quelquechose comme ceci:
((IRevertibleChangeTracking) MyItem).RejectChanges();
Mais avant d'utiliser cette interface, Je dois accéder à l'élément supprimé. Tout d'abord, il a essayé de l'obtenir via MyContext.MyTables mais il ne contient pas les enregistrements supprimés alors j'ai essayé de l'obtenir par EntityChangeSet:
EntityChangeSet Changes = MyContext.EntityContainer.GetChanges();
MyTable DeletedItem = Changes.First<MyTables>(e => e.ID = 1) ;
Et puis j'utilisé IRevertibleChangeTracking:
((IRevertibleChangeTracking) DeletedItem ).RejectChanges();
Mais après l'exécution, cette ligne de code n'a pas changé l'état de l'enregistrement et il a été conservé comme "supprimé" donc en appuyant sur le bouton "Enregistrer", il a été supprimé de la base de données physiquement !!!! Il semble que IRevertibleChangeTracking ne fonctionne pas pour les éléments supprimés/ajoutés (cela fonctionne uniquement pour les éléments modifiés). Par conséquent, existe-t-il un moyen de rejeter un élément supprimé particulier du DomainContext.
Merci,
Bienvenue dans SO, veuillez prendre quelques minutes pour lire la FAQ et la documentation Markdown (dont un synoptique utile est disponible dans la marge de droite lors de l'édition d'une question). – AnthonyWJones