Megosztás a következőn keresztül:


Ú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)

Lásd még