Enumeração ResolveAction
Especifica as opções para a resolução de quaisquer conflitos que ocorram no cliente durante a sincronização.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (em microsoft.synchronization.data.dll)
Sintaxe
'Declaração
Public Enumeration ResolveAction
'Uso
Dim instance As ResolveAction
public enum ResolveAction
public enum class ResolveAction
public enum ResolveAction
public enum ResolveAction
Membros
Nome do membro | Descrição | |
---|---|---|
ClientWins | Substitui a linha no servidor pela linha do cliente. | |
FireEvent | Gera o evento ApplyChangeFailed do cliente ou o evento ApplyChangeFailed do servidor. | |
ServerWins | Substitui a linha no cliente pela linha do servidor. |
Comentários
SqlCeClientSyncProvider inclui uma propriedade ConflictResolver que pode ser usada para resolver conflitos no cliente. Para cada tipo de conflito, você pode definir um valor a partir da enumeração ResolveAction:
ClientWins: equivalente a definir ApplyAction de Continue.
ServerWins: equivalente a definir ApplyAction de RetryWithForceWrite.
FireEvent: disparar o evento ApplyChangeFailed (o padrão) e, em seguida, tratar o evento.
Não há nenhum requisito para definir ConflictResolver para cada tipo de conflito. Você pode resolver conflitos da mesma maneira como no servidor, tratando o evento ApplyChangeFailed. No entanto, a propriedade ConflictResolver oferece uma maneira fácil de especificar as opções de resolução de conflitos no cliente. Para obter mais informações, consulte Como tratar conflitos de dados e erros.
Exemplo
O exemplo de código a seguir define a ação de resolução para cada tipo de conflito que o provedor de sincronização do cliente pode encontrar. Para exibir esse código no contexto de um exemplo completo, consulte Como tratar conflitos de dados e erros.
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