Поделиться через


Перечисление 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

См. также

Справочник

Пространство имен Microsoft.Synchronization.Data