方法: コンカレンシー例外をいつスローするかを指定する

LINQ to SQL では、オプティミスティック コンカレンシーの競合によってオブジェクトが更新されないときに ChangeConflictException 例外がスローされます。 詳細については、「オプティミスティック コンカレンシー:概要) の下のステートメントを右クリックします。

変更内容をデータベースに送信する前に、コンカレンシー例外をどの時点でスローするかを指定できます。

  • 例外を最初のエラーの時点でスローします (FailOnFirstConflict)。

  • 更新の再試行を決められた回数繰り返し、すべてのエラー情報を集積してから、この情報を例外で報告します (ContinueOnConflict)。

ChangeConflictException 例外がスローされると、例外を通じて ChangeConflictCollection コレクションにアクセスできます。 このコレクションを使用して、個々の競合 (それぞれが 1 回の更新失敗に対応する) の詳細情報を取得したり、MemberConflicts コレクションにアクセスしたりすることができます。 各メンバー競合は、コンカレンシー チェックでエラーになった更新の 1 つのメンバーに対応します。

両方の値の例を次のコードに示します。

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)

関連項目