Partager via


Procédure : Spécifier le moment où des exceptions d’accès concurrentiel sont levées

Dans LINQ to SQL, une exception ChangeConflictException est levée lorsque des objets ne sont pas mis à jour en raison de conflits d’accès concurrentiel optimiste. Pour plus d’informations, consultez Accès concurrentiel optimiste : Vue d’ensemble.

Avant de soumettre vos modifications à la base de données, vous pouvez spécifier quand des exceptions d'accès concurrentiel doivent être levées :

  • Lever l'exception au premier échec (FailOnFirstConflict).

  • Terminer toutes les tentatives de mise à jour, cumuler les échecs et signaler les échecs cumulés dans l'exception (ContinueOnConflict).

Lorsqu’elle est levée, l’exception ChangeConflictException donne accès à une collection ChangeConflictCollection. Cette collection fournit des détails pour chaque conflit (mappé à une seule tentative de mise à jour non réussie), y compris l'accès à la collection MemberConflicts. Chaque conflit entre membres mappe à un seul membre dans la mise à jour au cours de laquelle le contrôle d'accès concurrentiel a échoué.

Exemple

Le code suivant présente des exemples des deux valeurs.

Northwnd db = new Northwnd("...");

// Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict);
// or
db.SubmitChanges(ConflictMode.ContinueOnConflict);
Dim db As New Northwnd("...")

' Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict)
' or
db.SubmitChanges(ConflictMode.ContinueOnConflict)

Voir aussi