Compartilhar via


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

Consulte também

Referência

Namespace Microsoft.Synchronization.Data