ObjectChangeConflict 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示以一個或多個開放式並行存取衝突嘗試更新。
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) |