ResolveAction 枚举
指定用于解决同步期间客户端上发生的任何冲突的选项。
命名空间: Microsoft.Synchronization.Data
程序集: Microsoft.Synchronization.Data(在 Microsoft.Synchronization.Data.dll 中)
语法
声明
Public Enumeration ResolveAction
用法
Dim instance As ResolveAction
public enum ResolveAction
public enum class ResolveAction
type ResolveAction
public enum ResolveAction
成员
成员名称 | 说明 | |
---|---|---|
FireEvent | 引发客户端 ApplyChangeFailed 事件或服务器 ApplyChangeFailed 事件。 | |
ClientWins | 用客户端上的行覆盖服务器上的行。 | |
ServerWins | 用来自服务器的行覆盖客户端上的相应行。 |
注释
SqlCeClientSyncProvider 包括一个 ConflictResolver 属性,该属性可用来解决客户端上的冲突。对于每种类型的冲突,都可以设置 ResolveAction 枚举中的一个值:
ClientWins:等效于设置 Continue 的 ApplyAction。
ServerWins:等效于设置 RetryWithForceWrite 的 ApplyAction。
FireEvent:激发 ApplyChangeFailed 事件(默认值),然后处理该事件。
不需要为每种类型的冲突均设置 ConflictResolver。通过处理 ApplyChangeFailed 事件,可以像在服务器上一样解决冲突。但是,ConflictResolver 属性为在客户端上指定冲突解决选项提供了一条简单的途径。有关更多信息,请参见如何处理数据冲突和错误。
示例
下面的代码示例为客户端同步提供程序可能遇到每种冲突类型设置解决操作。若要在完整示例上下文中查看此代码,请参见如何处理数据冲突和错误。
this.ConflictResolver.ClientDeleteServerUpdateAction = ResolveAction.ServerWins;
this.ConflictResolver.ClientUpdateServerDeleteAction = ResolveAction.ClientWins;
//If any of the following conflicts or errors occur, the ApplyChangeFailed
//event is raised.
this.ConflictResolver.ClientInsertServerInsertAction = ResolveAction.FireEvent;
this.ConflictResolver.ClientUpdateServerUpdateAction = ResolveAction.FireEvent;
this.ConflictResolver.StoreErrorAction = ResolveAction.FireEvent;
//Log information for the ApplyChangeFailed event and handle any
//ResolveAction.FireEvent cases.
this.ApplyChangeFailed +=new EventHandler<ApplyChangeFailedEventArgs>(SampleClientSyncProvider_ApplyChangeFailed);
Me.ConflictResolver.ClientDeleteServerUpdateAction = ResolveAction.ServerWins
Me.ConflictResolver.ClientUpdateServerDeleteAction = ResolveAction.ClientWins
'If any of the following conflicts or errors occur, the ApplyChangeFailed
'event is raised.
Me.ConflictResolver.ClientInsertServerInsertAction = ResolveAction.FireEvent
Me.ConflictResolver.ClientUpdateServerUpdateAction = ResolveAction.FireEvent
Me.ConflictResolver.StoreErrorAction = ResolveAction.FireEvent
'Log information for the ApplyChangeFailed event and handle any
'ResolveAction.FireEvent cases.
AddHandler Me.ApplyChangeFailed, AddressOf SampleClientSyncProvider_ApplyChangeFailed