Я делаю синхронизацию между двумя базами данных SQL Express, одна - сервер, другая - клиент.
У меня есть следующий код, который выполняет синхронизацию:
/// <summary>
/// Sync to Providers
/// </summary>
/// <param name="localProvider">can be RelationalProvider Proxy !!! (WCF)</param>
/// <param name="remoteProvider">RelationalProvider Proxy !!! (WCF)</param>
/// <param name="syncDirectionOrder"></param>
/// <returns></returns>
private SyncOperationStatistics SynchronizeProviders(KnowledgeSyncProvider localProvider, KnowledgeSyncProvider remoteProvider, SyncDirectionOrder syncDirectionOrder)
{
localProvider.Configuration.CollisionConflictResolutionPolicy = CollisionConflictResolutionPolicy.RenameDestination;
localProvider.Configuration.ConflictResolutionPolicy = ConflictResolutionPolicy.SourceWins;
remoteProvider.Configuration.CollisionConflictResolutionPolicy = CollisionConflictResolutionPolicy.RenameSource;
remoteProvider.Configuration.ConflictResolutionPolicy = ConflictResolutionPolicy.DestinationWins;
SubscribeResultEvent(localProvider);
SyncOrchestrator orchestrator = new SyncOrchestrator
{
LocalProvider = localProvider,
RemoteProvider = remoteProvider,
Direction = syncDirectionOrder
};
SyncOperationStatistics stats = orchestrator.Synchronize();
return stats;
}
Я не знаю почему, но мойserver db всегда win, не имеет значения server * localProvider
или RemoteProvider
и переписывает данные клиента, но я хочу сделать настройку, что client всегда выигрывает.
Но я не могу понять, как MSSync Framework делает это.
Что мне нужно настроить?
спасибо!