2010-06-23 10 views
1

Comment puis-je annuler des modifications quand un SaveChanges() échoue?Comment annuler les modifications quand un SaveChanges() échoue?

contextObject.Toto.AddObject(new Toto()); 

try 
{ 
    contextObject.SaveChanges(); 
} 
catch 
{ 
     // Undo changes ! 
} 

Dans cet exemple, j'aimerais supprimer le nouvel objet Toto en mémoire. Je ne veux pas l'enlever manuellement. J'aimerais synchroniser mon objet contextObject avec ma base de données.

Répondre

0

Saving Changes and Managing Concurrency:

try 
{ 
    // Try to save changes, which may cause a conflict. 
    int num = context.SaveChanges(); 
    Console.WriteLine("No conflicts. " + 
     num.ToString() + " updates saved."); 
} 
catch (OptimisticConcurrencyException) 
{ 
    // Resolve the concurrency conflict by refreshing the 
    // object context before re-saving changes. 
    context.Refresh(RefreshMode.ClientWins, orders); 

    // Save changes. 
    context.SaveChanges(); 
    Console.WriteLine("OptimisticConcurrencyException " 
    + "handled and changes saved"); 
} 
+1

Cela ne résout pas mon problème. Je n'ai aucune exception de concurrence. Je veux juste annuler mes changements dans la mémoire (le 'AddObject') et ainsi réinitialiser le gestionnaire d'état –