Útmutató: Adja meg, hogy mikor kerülnek ki egyidejűségi kivételek
A LINQ-ból SQL-be kivétel keletkezik, ChangeConflictException ha az objektumok optimista egyidejűségi ütközések miatt nem frissülnek. További információ: Optimista egyidejűség: Áttekintés.
Mielőtt elküldené a módosításokat az adatbázisba, megadhatja, hogy mikor legyen szükség egyidejűségi kivételekre:
A kivételt az első hibánál (FailOnFirstConflict) dobja ki.
Fejezze be az összes frissítési kísérletet, gyűjtse össze az összes hibát, és jelentse a kivétel (ContinueOnConflict) halmozott hibáit.
A kivétel a dobáskor ChangeConflictException hozzáférést biztosít egy ChangeConflictCollection gyűjteményhez. Ez a gyűjtemény minden ütközés részleteit tartalmazza (egyetlen sikertelen frissítési kísérletre van leképezve), beleértve a MemberConflicts gyűjteményhez való hozzáférést is. Minden tagütközés egyetlen tagra képez le az egyidejűségi ellenőrzést sikertelen frissítésben.
Példa
Az alábbi kód mindkét értékre mutat példákat.
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)