0

LocalDataCache を使用して SQL Server 2008 Express データベースをクライアント データベース (.sdf ファイル) に同期するアプリケーションがあります。これはうまく機能し、現在、競合を管理しています。

この Microsoft リソースをガイドとして使用しています:方法: データの競合とエラーを処理する

私が特に興味を持っている競合は、ConflictType.ClientInsertServerInsert です。

クライアントとサーバーの両方に競合する行を挿入したいのですが、これを行うための SyncFramework への内部メソッドがあるかどうか疑問に思っていますか?

それ以外の場合、私の解決策は次のとおりです。

0 - e.Action = ApplyAction.Continue に設定します (変更なし)。

1 - クライアントの競合 (id、テーブル名) を配列に保存します。

2 - サーバーの競合 (id、テーブル名) を配列に保存します。

3 - クライアント競合配列内の各項目について、サーバーに挿入します

4 - サーバーの競合配列内の各項目について、クライアントに挿入します

SyncFramework が他のすべてのことを行っているように見えるので、SyncFramework がこれを行うことができるかどうか疑問に思っていますか?

返信をお待ちしております。ありがとう

4

1 に答える 1

0

自動インクリメント int の代わりに PK の GUID を使用することで、この問題を修正しました。これにより、サーバーまたは任意のクライアントによって挿入される各行が一意になることが保証されます。追加のストレージ容量や検索にかかる時間など、いくつかの欠点があることはわかっていますが、これは私が喜んで受け入れるものです (そして、クライアントが取得するデータをフィルタリングして、パフォーマンスの向上に役立てます)。

于 2009-11-27T12:56:19.573 に答える