Bagikan melalui


Cara: Menentukan Kapan Pengecualian Konkurensi Dimunculkan

Dalam LINQ untuk SQL, pengecualian ChangeConflictException dilemparkan ketika objek tidak diperbarui karena konflik konkurensi optimis. Untuk informasi selengkapnya, lihat Konkurensi Optimis: Gambaran Umum.

Sebelum mengirimkan perubahan ke database, Anda dapat menentukan kapan pengecualian konkurensi harus dilemparkan:

  • Lempar pengecualian pada kegagalan pertama (FailOnFirstConflict).

  • Selesaikan semua percobaan pembaruan, akumulasi semua kegagalan, dan laporkan akumulasi kegagalan dalam pengecualian (ContinueOnConflict).

Saat dilemparkan, pengecualian ChangeConflictException menyediakan akses ke koleksi ChangeConflictCollection. Koleksi ini menyediakan detail untuk setiap konflik (dipetakan ke satu percobaan pembaruan yang gagal), termasuk akses ke koleksi MemberConflicts. Setiap anggota konflik memetakan ke satu anggota dalam pembaruan yang gagal dalam pemeriksaan konkurensi.

Contoh

Kode berikut menunjukkan contoh pembulatan.

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)

Lihat juga