Перечисление 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
public enum ResolveAction
public enum ResolveAction
Элементы
Имя члена | Описание | |
---|---|---|
ClientWins | Перезаписать строку на сервере строкой, полученной от клиента. | |
FireEvent | Вызвать событие ApplyChangeFailed на клиенте или событие ApplyChangeFailed на сервере. | |
ServerWins | Перезаписать строку на клиенте строкой, полученной от сервера. |
Замечания
Объект SqlCeClientSyncProvider включает свойство, ConflictResolverкоторое можно использовать для разрешения клиентских конфликтов. Для каждого типа конфликта, можно задать значение из ResolveAction перечисления:
ClientWins: эквивалентно установке ApplyAction из Continue.
ServerWins: эквивалентно установке ApplyAction из RetryWithForceWrite.
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