ResolveAction-Enumeration
Gibt die Optionen zum Auflösen von Konflikten an, die während der Synchronisierung beim Client auftreten.
Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)
Syntax
'Declaration
Public Enumeration ResolveAction
'Usage
Dim instance As ResolveAction
public enum ResolveAction
public enum class ResolveAction
type ResolveAction
public enum ResolveAction
Member
Membername | Beschreibung | |
---|---|---|
FireEvent | Das ApplyChangeFailed-Clientereignis oder das ApplyChangeFailed-Serverereignis auslösen. | |
ClientWins | Die Zeile auf dem Server mit der Zeile des Clients überschreiben. | |
ServerWins | Die Zeile auf dem Client mit der Zeile des Servers überschreiben. |
Hinweise
Der SqlCeClientSyncProvider enthält eine ConflictResolver-Eigenschaft, die Sie zum Auflösen von Konflikten auf dem Client verwenden können. Für jeden Konflikttyp können Sie einen Wert aus der ResolveAction-Enumeration festlegen:
ClientWins: identisch mit dem Festlegen des Werts Continue für ApplyAction
ServerWins: identisch mit dem Festlegen des Werts RetryWithForceWrite für ApplyAction
FireEvent: löst den Standard, das ApplyChangeFailed-Ereignis aus und behandelt dann das Ereignis
Der ConflictResolver muss nicht für jeden Konflikttyp festgelegt werden. Sie können Konflikte genau wie auf dem Server auflösen, indem Sie das ApplyChangeFailed-Ereignis behandeln. Die ConflictResolver-Eigenschaft bietet aber dennoch eine einfache Möglichkeit, Konfliktauflösungsoptionen auf dem Client festzulegen. Weitere Informationen dazu finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
Beispiele
Im folgenden Codebeispiel wird für jede Art von Konflikt, auf die der Clientsynchronisierungsanbieter stoßen kann, die entsprechende Konfliktauflösungsaktion festgelegt. Eine Darstellung dieses Codes im Kontext eines vollständigen Beispiels finden Sie unter Vorgehensweise: Behandeln von Datenkonflikten und Fehlern.
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