ApplyAction 열거형
동기화 중에 행을 적용할 수 없는 경우 행을 처리하는 옵션을 지정합니다.
네임스페이스: Microsoft.Synchronization.Data
어셈블리: microsoft.synchronization.data.dll의 Microsoft.Synchronization.Data
구문
‘선언
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