Перечисление ApplyAction
Указывает параметры обработки строки, когда строка не может быть применена во время синхронизации.
Пространство имен: Microsoft.Synchronization.Data
Сборка: Microsoft.Synchronization.Data (в microsoft.synchronization.data.dll)
Синтаксис
'Декларация
Public Enumeration ApplyAction
'Применение
Dim instance As ApplyAction
public enum ApplyAction
public enum class ApplyAction
public enum ApplyAction
public enum ApplyAction
Элементы
Имя члена | Описание | |
---|---|---|
Continue | Продолжить обработку и добавить строку в список конфликтов, определенных в объекте SyncConflict. Это поведение по умолчанию. | |
RetryApplyingRow | Попытаться применить строку еще раз. | |
RetryNextSync | Сохранить строку как исключение и попытаться применить строку во время следующего сеанса синхронизации. Поддерживается только при одноранговой синхронизации. | |
RetryWithForceWrite | Принудительно применить строку с помощью логики, включенной в команды адаптера синхронизации. |
Замечания
Если при синхронизации строка не может быть применена, вызывается событие ApplyChangeFailed. Объект ApplyChangeFailedEventArgs содержит сведения об ошибке или конфликте, приведших к сбою операции. В обработчике для события можно указать, следует ли поставщику синхронизации пытаться вновь применить строку. Принудительная запись изменений на клиенте обрабатывается поставщиком синхронизации на клиенте. Для принудительной записи изменений на сервере необходимо реализовать логику в коде, применяющем изменения на сервере. Дополнительные сведения см. в разделе Как обрабатывать конфликты и ошибки в данных.
Пример
В следующем примере кода задается значение RetryWithForceWrite
для случаев, когда операции обновления на клиенте вызывают конфликт с операциями удаления на сервере. Чтобы просмотреть этот код в контексте полного примера, см. раздел Как обрабатывать конфликты и ошибки в данных.
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