ResolveAction Enumeración
Especifica las opciones para resolver cualquier conflicto que pueda producirse en el cliente durante la sincronización.
Espacio de nombres: Microsoft.Synchronization.Data
Ensamblado: Microsoft.Synchronization.Data (en microsoft.synchronization.data.dll)
Sintaxis
'Declaración
Public Enumeration ResolveAction
'Uso
Dim instance As ResolveAction
public enum ResolveAction
public enum class ResolveAction
public enum ResolveAction
public enum ResolveAction
Miembros
Nombre del miembro | Descripción | |
---|---|---|
ClientWins | Sobrescribir la fila en el servidor con la fila procedente del cliente. | |
FireEvent | Desencadena el evento ApplyChangeFailed de cliente o el evento ApplyChangeFailed de servidor. | |
ServerWins | Sobrescribir la fila en el cliente con la fila procedente del servidor. |
Notas
El SqlCeClientSyncProvider también incluye una propiedad ConflictResolver que facilita la resolución de conflictos en el cliente. Para cada tipo de conflicto, puede establecer un valor de la enumeración ResolveAction:
ClientWins: equivalente a establecer ApplyAction en Continue.
ServerWins: equivalente a establecer ApplyAction en RetryWithForceWrite.
FireEvent: desencadena el evento ApplyChangeFailed, el valor predeterminado, y después lo controla.
No es necesario establecer ConflictResolver para cada tipo de conflicto. Puede resolver los conflictos como lo haría en el servidor, mediante el control del evento ApplyChangeFailed. No obstante, la propiedad ConflictResolver ofrece un método sencillo para especificar opciones de resolución de conflictos en el cliente. Para obtener más información, vea Controlar conflictos de datos y errores.
Ejemplo
El ejemplo de código siguiente establece la acción de resolución para cada tipo de conflicto que encuentre el proveedor de sincronización del cliente. Para consultar este código en el contexto de un ejemplo completo, vea Controlar conflictos de datos y errores.
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