方法 : 同時実行例外をいつスローするかを指定する (LINQ to SQL)

LINQ to SQL では、オプティミスティック同時実行の競合によってオブジェクトが更新されないときに ChangeConflictException 例外がスローされます。 詳細については、「オプティミスティック同時実行の概要 (LINQ to SQL)」を参照してください。

変更内容をデータベースに送信する前に、同時実行例外をどの時点でスローするかを指定できます。

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

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

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

使用例

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

Dim db As New Northwnd("...")

' Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict)
' or
db.SubmitChanges(ConflictMode.ContinueOnConflict)
Northwnd db = new Northwnd("...");

// Create, update, delete code.

db.SubmitChanges(ConflictMode.FailOnFirstConflict);
// or
db.SubmitChanges(ConflictMode.ContinueOnConflict);

参照

その他の技術情報

方法 : 変更の競合を管理する (LINQ to SQL)

データの変更と変更の送信 (LINQ to SQL)