0

サーバーからクライアントへの一方向同期を実装しようとしています。どちらも Sync Framework 2.1 を使用して SQLExpress 2008 を実行しています。初期同期中に問題が発生しました。

サーバーには 2 つのスコープが定義されています。

Scope1 にはテーブル A、B、C が含まれ、Scope2 にはテーブル B、C、D が含まれます

最初の同期の前に、クライアント データベースにはテーブル A、B、C、および D (スクリプトを使用してインポート) が含まれており、各テーブルは空です。データベースは、Scope1 と Scope2 のサーバーのスコープ情報を使用して、既定のプロビジョニング設定を使用してプロビジョニングされています。

初めて Scope1 を同期すると、すべてが成功します。Scope2 を同期すると、共有テーブル (B、C) のすべてのレコードがダウンロードされ、LocalInsertRemoteInsert競合として報告されます。

このような動作を回避する方法はありますか? Sync Framework は、Scope1 の同期が完了した後、テーブル B と C が最新であることを認識すべきではありませんか?

4

1 に答える 1

1

重複するスコープがあり、他のスコープに含まれるデータは、他のスコープに含まれるデータと同じです。

同期された内容に関する情報はスコープ レベルで保存され、最初のスコープで同期された内容は 2 番目のスコープには認識されず、その逆も同様です。

スコープ 1 を同期すると、データがダウンロードされ、何が同期されたかに関する独自の同期知識が更新されます。Scope 2 を同期すると、Scope 1 が何を同期したかがわからないため、それらを再度ダウンロードします。

B と C をスコープ 1 に配置し、スコープ 2 を A に、スコープ 3 を D に作成します。したがって、B と C を一度だけ同期します。

于 2012-10-15T03:22:23.637 に答える