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) |