次の方法で共有


ObjectChangeConflict クラス

定義

1 つまたは複数のオプティミスティック コンカレンシーの競合がある更新の試行を表します。

public ref class ObjectChangeConflict sealed
public sealed class ObjectChangeConflict
type ObjectChangeConflict = class
Public NotInheritable Class ObjectChangeConflict
継承
ObjectChangeConflict

Northwnd db = new Northwnd("...");

try
{
    db.SubmitChanges(ConflictMode.ContinueOnConflict);
}

catch (ChangeConflictException e)
{
    Console.WriteLine("Optimistic concurrency error.");
    Console.WriteLine(e.Message);
    foreach (ObjectChangeConflict occ in db.ChangeConflicts)
    {
        MetaTable metatable = db.Mapping.GetTable(occ.Object.GetType());
        Customer entityInConflict = (Customer)occ.Object;
        Console.WriteLine("Table name: {0}", metatable.TableName);
        Console.Write("Customer ID: ");
        Console.WriteLine(entityInConflict.CustomerID);
        Console.ReadLine();
    }
}
Dim db As New Northwnd("...")

Try
    db.SubmitChanges(ConflictMode.ContinueOnConflict)

Catch ex As ChangeConflictException
    Console.WriteLine("Optimistic concurrency error.")
    Console.WriteLine(ex.Message)
    For Each occ As ObjectChangeConflict In db.ChangeConflicts
        Dim metatable As MetaTable = db.Mapping.GetTable(occ.Object.GetType())
        Dim entityInConflict = occ.Object

        Console.WriteLine("Table name: " & metatable.TableName)
        Console.Write("Customer ID: ")
        Console.WriteLine(entityInConflict.CustomerID)
        Console.ReadLine()
    Next
End Try

注釈

このシナリオは、クライアントが最後に値を読み取った後にデータベース値が更新されたため、更新の試行が失敗するシナリオです。

次の例は、競合しているオブジェクトに関する情報を取得する方法を示しています。

プロパティ

IsDeleted

競合しているオブジェクトがデータベースから削除されているかどうかを示す値を取得します。

IsResolved

このオブジェクトの競合が既に解決されているかどうかを示す値を取得します。

MemberConflicts

更新が失敗する原因となった、メンバーのすべての競合のコレクションを取得します。

Object

競合しているオブジェクトを取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Resolve()

現在の値を保持し、最新のデータベースの値に一致させるためにベースラインの元の値をリセットすることで、メンバーの競合を解決します。

Resolve(RefreshMode)

指定した RefreshMode を使用して、メンバーの競合を解決します。

Resolve(RefreshMode, Boolean)

現在の値を保持し、ベースラインの元の値をリセットすることで、メンバーの競合を解決します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象