2017-05-29 11 views
0

。 私はこの例である場合:.NET SyncFramework同期範囲

ローカルDB: 1.ジョン 2.ジョー 3.マーク

リモート: 1.ジョン 2.ジョー

とIを最終結果は、私は両方のデータベース内のすべての3つのレコードを持っているだろうということになりますが、彼らは両方に存在するので、同期プロセスは、(それらを挿入カント)レコード#1と#2のエラーを引き起こしているだろう。2つのデータベースを同期させますデフォルトでは、同期フレームワークは文句を言わない、この場合には何もするし、私だけのためにOKである、継続されます。両方のデータベースからのみ非同一のレコードが(結果として、これらのエラーが最初の場所で生成されていないことはありません)同期するように

同期スコープを設定する方法はありますか?

私のコードは、(Microsoftのサンプルコードから)次のようになります。

SqlSyncScopeProvisioning serverProvision = new SqlSyncScopeProvisioning(remoteServerConn); 
DbSyncScopeDescription remoteScopeDesc = new DbSyncScopeDescription(remoteProvisioningScopeName); 
DbSyncTableDescription tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable(remoteTableName, remoteServerConn); 
remoteScopeDesc.Tables.Add(tableDesc); 
serverProvision.PopulateFromScopeDescription(remoteScopeDesc);     serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip);  
serverProvision.Apply(); 
SqlSyncScopeProvisioning clientProvision = new SqlSyncScopeProvisioning(localServerConn); 
DbSyncScopeDescription localScopeDesc = SqlSyncDescriptionBuilder.GetDescriptionForScope(remoteProvisioningScopeName, remoteServerConn); 
clientProvision.PopulateFromScopeDescription(localScopeDesc); 
clientProvision.Apply(); 
SyncOrchestrator syncOrchestrator = new SyncOrchestrator(); 
syncOrchestrator.LocalProvider = new SqlSyncProvider(remoteProvisioningScopeName, localServerConn); 
syncOrchestrator.RemoteProvider = new SqlSyncProvider(remoteProvisioningScopeName, remoteServerConn);  
syncOrchestrator.Direction = syncDirection; 
((SqlSyncProvider)syncOrchestrator.LocalProvider).ApplyChangeFailed += new EventHandler<DbApplyChangeFailedEventArgs>(Program_ApplyChangeFailed); 
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize(); 

答えて

0

Sync Frameworkのは、送信元と送信先

の間で異なるものだではない最後の同期以降に変更されたものを、すなわち同期増分を行います
関連する問題