Перечисление ConflictType
Определяет типы конфликтов, возникающих во время синхронизации.
Пространство имен: Microsoft.Synchronization.Data
Сборка: Microsoft.Synchronization.Data (в microsoft.synchronization.data.dll)
Синтаксис
'Декларация
Public Enumeration ConflictType
'Применение
Dim instance As ConflictType
public enum ConflictType
public enum class ConflictType
public enum ConflictType
public enum ConflictType
Элементы
Имя члена | Описание | |
---|---|---|
ClientDeleteServerUpdate | Клиент удалил строку, которую обновил сервер. | |
ClientInsertServerInsert | Клиент и сервер одновременно вставили строку с одним и тем же значением первичного ключа. Это вызвало нарушение первичного ключа. | |
ClientUpdateServerDelete | Сервер удалил строку, которую обновил клиент. | |
ClientUpdateServerUpdate | Клиент и сервер обновили одну и ту же строку. | |
ErrorsOccurred | Клиентское или серверное хранилище (обычно база данных) выдало исключение в процессе применения изменения. | |
Unknown | Служба синхронизации клиента может классифицировать все встретившиеся конфликты, а поставщик синхронизации сервера не может. В результате некоторые конфликты классифицируются как Unknown. |
Замечания
Конфликт возникает, если одна и та же строка вставляется, обновляется или удаляется более чем в одном месте в промежутке между синхронизациями. Конфликты всегда определяются как возникшие между сервером и клиентом, которые синхронизируются в настоящее время. Однако это не означает, что изменение на сервере, вызывающее конфликт, было произведено именно на сервере. Дополнительные сведения см. в разделе Как обрабатывать конфликты и ошибки в данных.
Пример
В следующем примере кода задается значение 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