ApplyAction-Enumeration
Gibt die Optionen zum Verarbeiten einer Zeile an, wenn die Zeile während der Synchronisierung nicht übernommen werden kann.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)
Syntax
'Declaration
Public Enumeration ApplyAction
'Usage
Dim instance As ApplyAction
public enum ApplyAction
public enum class ApplyAction
type ApplyAction
public enum ApplyAction
Member
Membername | Beschreibung | |
---|---|---|
Continue | Verarbeitung fortsetzen und die Zeile der Liste der Konflikte hinzufügen, die im SyncConflict-Objekt definiert sind. Dies ist das Standardverhalten. | |
RetryApplyingRow | Erneut versuchen, die Zeile anzuwenden. | |
RetryWithForceWrite | Anwenden der Zeile mithilfe einer Logik erzwingen, die in den Synchronisierungsadapterbefehlen enthalten ist. | |
RetryNextSync | Zeile als Ausnahme speichern und versuchen, sie während der nächsten Synchronisierungssitzung anzuwenden. Nur für Peer-to-Peer-Synchronisierung gültig. |
Hinweise
Wenn eine Zeile während der Synchronisierung nicht übernommen werden kann, wird das ApplyChangeFailed-Ereignis ausgelöst. Das ApplyChangeFailedEventArgs-Objekt stellt Informationen über den Fehler oder Konflikt zur Verfügung, der zur Auslösung des Ereignisses geführt hat. In einem Handler für das Ereignis können Sie festlegen, ob der Synchronisierungsanbieter erneut versuchen soll, die Zeile anzuwenden. Das erzwungene Schreiben von Änderungen auf dem Client wird vom Clientsynchronisierungsanbieter behandelt. Für das erzwungene Schreiben von Änderungen auf dem Server wird eine Logik im Code benötigt, die Änderungen für den Server übernimmt. Weitere Informationen dazu finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
Beispiele
Das folgende Codebeispiel legt für Konflikte zwischen Clientaktualisierung und Serverlöschung den Wert RetryWithForceWrite fest. Eine Darstellung dieses Codes im Kontext eines vollständigen Beispiels finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
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