方法: コンカレンシー例外をいつスローするかを指定する
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)