0

さて、私は Sync Framework 2.1 を調べています。テーブルを変更して列を追加するまで、うまくいきました。というテーマでたくさん書かれています。これが私のアプローチです

  1. テーブルを変更し、データベース (マスター、およびスレーブ) に列を追加します。
  2. 追跡テーブルの名前を変更します (例: todos_tracking から todos_tracking_back へ)
  3. 元の提供スコープをドロップ
  4. 追跡テーブルの作成をスキップして、以前と同じ名前で新しいスコープを作成します
  5. 追跡テーブルの名前を元の名前に変更します (例: todos_tracking_back から todos_tracking に)

これはすべて、変更の追跡を失わないためです。特に巨大なデータ テーブル用。

結果はどうでしたか?既存の行を更新または削除すると、変更が同期に反映されません。しかし、新しい行を挿入すると、変更が反映されます。

誰かがこのようなことを経験したことがありますか?

私の仕事では、新しい列を追加してテーブルを変更する必要がある場合があります。そして今、データベースを同期する必要があります。

明確であることを願っています。前もって感謝します。

4

1 に答える 1

0

ステップ 3 でスコープを削除すると、同期された内容の同期知識が効果的に削除されます。デプロビジョニングと再プロビジョニングだけだったかもしれません。

追跡テーブルは変更されたものを保存するだけで、同期されたものは保存しません。それはスコープ テーブルのナレッジ列にあります。

スコープ同期の知識を削除したため、sync fx は、両方のデータベースのテーブルに同様のデータが含まれていることを通知する方法がありません。次に、あるデータベースの既存の行を別のデータベースに適用しようとしますが、競合が発生する可能性が最も高くなります。

ApplyChangesFailed イベントをサブスクライブしてみると、競合が発生するはずです。

これらは以前は存在しなかった行であるため、新しい挿入は機能します。

于 2012-09-06T03:47:15.997 に答える