Enumerazione ApplyAction
Specifica le opzioni per l'elaborazione di una riga quando non è possibile applicare la riga durante la sincronizzazione.
Spazio dei nomi: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in microsoft.synchronization.data.dll)
Sintassi
'Dichiarazione
Public Enumeration ApplyAction
'Utilizzo
Dim instance As ApplyAction
public enum ApplyAction
public enum class ApplyAction
public enum ApplyAction
public enum ApplyAction
Membri
Nome membro | Descrizione | |
---|---|---|
Continue | Continua l'elaborazione e aggiunge la riga all'elenco di conflitti definiti nell'oggetto SyncConflict. Questo è il comportamento predefinito. | |
RetryApplyingRow | Tenta di applicare nuovamente la riga. | |
RetryNextSync | Archivia la riga come un'eccezione e tenta di applicare la riga durante la sessione di sincronizzazione successiva. Valido solo per la sincronizzazione peer-to-peer. | |
RetryWithForceWrite | Forza l'applicazione della riga utilizzando la logica inclusa nei comandi dell'adattatore di sincronizzazione. |
Osservazioni
Se non è possibile applicare una riga durante la sincronizzazione, viene generato l'evento ApplyChangeFailed. L'oggetto ApplyChangeFailedEventArgs fornisce informazioni sull'errore o sul conflitto che ha generato il problema. In un gestore dell'evento è possibile specificare se il provider di sincronizzazione deve tentare di applicare di nuovo la riga. La scrittura forzata delle modifiche nel client viene gestita dal provider di sincronizzazione client e richiede l'aggiunta di logica nel codice per l'applicazione delle modifiche al server. Per ulteriori informazioni, vedere Procedura: gestire conflitti di dati ed errori.
Esempio
Nell'esempio di codice seguente viene specificato il valore RetryWithForceWrite
per i conflitti di aggiornamento client/eliminazione server. Per visualizzare questo codice nel contesto di un esempio completo, vedere Procedura: gestire conflitti di dati ed errori.
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