Enumeração ApplyAction
Especifica as opções para processar uma linha quando esta não pode ser aplicada durante a sincronização.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (em microsoft.synchronization.data.dll)
Sintaxe
'Declaração
Public Enumeration ApplyAction
'Uso
Dim instance As ApplyAction
public enum ApplyAction
public enum class ApplyAction
public enum ApplyAction
public enum ApplyAction
Membros
Nome do membro | Descrição | |
---|---|---|
Continue | Continue o processamento e adicione a linha à lista de conflitos definidos no objeto SyncConflict. Esse é o comportamento padrão. | |
RetryApplyingRow | Tente aplicar a linha mais uma vez. | |
RetryNextSync | Armazene a linha como uma exceção e tente aplicar a linha durante a próxima sessão de sincronização. Válido somente para sincronização ponto a ponto. | |
RetryWithForceWrite | Imponha a aplicação da linha usando uma lógica que está incluída nos comandos do adaptador de sincronização. |
Comentários
Se não for possível aplicar uma linha durante a sincronização, será gerado o evento ApplyChangeFailed. O objeto ApplyChangeFailedEventArgs fornece informações sobre o erro ou o conflito que provocou a falha. Em um manipulador do evento, você pode especificar se o provedor de sincronização deve tentar aplicar a linha novamente. A gravação forçada de alterações no cliente é tratada pelo provedor de sincronização do cliente. A gravação forçada de alterações no servidor requer lógica no código que aplique as alterações no servidor. Para obter mais informações, consulte Como tratar conflitos de dados e erros.
Exemplo
O exemplo de código a seguir especifica um valor RetryWithForceWrite
para conflitos de atualização no cliente/exclusão no servidor. Para exibir esse código no contexto de um exemplo completo, consulte Como tratar conflitos de dados e erros.
if (e.Conflict.ConflictType == ConflictType.ClientUpdateServerDelete)
{
//For client-update/server-delete conflicts, we force the client
//change to be applied at the server. The stored procedure specified for
//customerSyncAdapter.UpdateCommand accepts the @sync_force_write parameter
//and includes logic to handle this case.
Console.WriteLine(String.Empty);
Console.WriteLine("***********************************");
Console.WriteLine("A client update / server delete conflict was detected.");
e.Action = ApplyAction.RetryWithForceWrite;
Console.WriteLine("The client change was retried at the server with RetryWithForceWrite.");
Console.WriteLine("***********************************");
Console.WriteLine(String.Empty);
}
If e.Conflict.ConflictType = ConflictType.ClientUpdateServerDelete Then
'For client-update/server-delete conflicts, we force the client
'change to be applied at the server. The stored procedure specified for
'customerSyncAdapter.UpdateCommand accepts the @sync_force_write parameter
'and includes logic to handle this case.
Console.WriteLine(String.Empty)
Console.WriteLine("***********************************")
Console.WriteLine("A client update / server delete conflict was detected.")
e.Action = ApplyAction.RetryWithForceWrite
Console.WriteLine("The client change was retried at the server with RetryWithForceWrite.")
Console.WriteLine("***********************************")
Console.WriteLine(String.Empty)
End If