Поделиться через


Перечисление 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: эквивалентно установке 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

См. также

Справочник

Пространство имен Microsoft.Synchronization.Data