0

次の 2 つのテーブルを同期しようとしています。

宛先データベースでは、ParentTable を更新または削除できません。ただし、ChildTable は適切に同期します。

何か不足していますか?少し早いですがお礼を!

ここに画像の説明を入力

DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("Name");

scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("ParentTable", sqlSourceConn));
scopeDesc.Tables.Add(SqlSyncDescriptionBuilder.GetDescriptionForTable("ChildTable", sqlSourceConn));


var sqlSourceProv = new SqlSyncScopeProvisioning(sqlSourceConn, scopeDesc);
sqlSourceProv.CommandTimeout = 3600;
if (!sqlSourceProv.ScopeExists("Name"))
   sqlSourceProv.Apply();

var sqlDestinationProv = new SqlSyncScopeProvisioning(sqlDestinationConn, scopeDesc);
sqlDestinationProv.CommandTimeout = 3600;
if (!sqlDestinationProv.ScopeExists("Name"))
   sqlDestinationProv.Apply();

var destinationProvider = new SqlSyncProvider("Name", sqlDestinationConn);

var sourceProvider = new SqlSyncProvider("Name", sqlSourceConn);

destinationProvider.MemoryDataCacheSize = MemorySize;
sourceProvider.MemoryDataCacheSize = MemorySize;

destinationProvider.ApplicationTransactionSize = BatchSize;

SyncOrchestrator orch = new SyncOrchestrator();
orch.RemoteProvider = destinationProvider;
orch.LocalProvider = sourceProvider;
orch.Direction = SyncDirectionOrder.Upload;

SyncOperationStatistics stats = orch.Synchronize();
4

1 に答える 1

1

FK関係がある場合は、競合中にエラーが発生している必要があります(子を持つ親を削除することはできません)... ApplyChangeFailedEventをサブスクライブすることで、これを確認できます。問題を解決するために競合解決を設定できます。

于 2012-05-16T23:55:46.010 に答える