Procedura: specificare quando vengono generate eccezioni di concorrenza

In LINQ to SQL, un'eccezione ChangeConflictException viene generata quando gli oggetti non vengono aggiornati a causa di conflitti di concorrenza ottimistica. Per altre informazioni, vedere Concorrenza ottimistica: Panoramica.

Prima di inviare le modifiche al database, è possibile specificare quando dovranno essere generate le eccezioni di concorrenza:

  • Generare l'eccezione al primo errore (FailOnFirstConflict).

  • Completare tutti i tentativi di aggiornamento, accumulare tutti gli errori e segnalare gli errori accumulati nell'eccezione (ContinueOnConflict).

Quando viene generata, l'eccezione ChangeConflictException fornisce l'accesso a una raccolta ChangeConflictCollection. In questa raccolta vengono forniti i dettagli per ogni conflitto (associato a un unico tentativo di aggiornamento non riuscito), nonché l'accesso alla raccolta MemberConflicts. Per ogni conflitto fra membri viene eseguito il mapping a un unico membro nell'aggiornamento che non ha superato il controllo della concorrenza.

Esempio

Nel codice riportato di seguito vengono illustrati esempi di entrambi i valori.

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)

Vedi anche