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 屬性並不能提供一個簡單方法來指定用戶端上的衝突解決選項。如需詳細資訊,請參閱 HOW TO:處理資料衝突和錯誤。
範例
下列程式碼範例會針對用戶端同步處理提供者可能遇到的每一種衝突類型來設定解決動作。若要在完整範例的內容中檢視這段程式碼,請參閱 HOW TO:處理資料衝突和錯誤。
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