ObjectChangeConflict クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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, Boolean) |
メンバーの競合を解決して、現在の値を保持し、ベースラインの元の値をリセットします。 |
| Resolve(RefreshMode) |
指定した RefreshModeを使用してメンバーの競合を解決します。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |