0

事前設定された Sql CE データベースを使用してアプリケーションを展開したいと考えています。

手順:
1) デプロイ時: VS 2010 で LocalDataCache オブジェクトを使用して SQL ce データベースを作成し、事前に入力します。このデータベースを圧縮してサーバーに配置します。
2) クライアント: アプリ
をダウンロードします。 3) クライアント アプリ: 圧縮されたデータベースをダウンロードして解凍します。
4) クライアント アプリ: 元のデータベースに対して WCF サービスに対して同期を行い、増分変更のみをプルダウンします。

ステップ 4 まで上記の作業を行っています。
ステップ 4 で、wcf サービスはデータベース内のすべてのデータを返しています (つまり、ローカル データベースを空であるかのように扱っています。この理由は、アンカーが出ているためだと思います。同期の。

私がやりたいのは、デプロイ時にアンカーをリセットして、サーバーがデプロイとクライアントのダウンロードと同期の間に発生した変更のみを返すようにすることです。

誰もこれを行う方法を知っていますか?

ありがとう :)

4

3 に答える 3

0

ステップ1で、スナップショットを選択しなかったと想定していますか?スナップショットはアンカーを保存しません。

アンカーをいじりたい場合は、SqlCeClientSyncProviderのGetTableReceivedAnchor()およびSetTableReceivedAnchor()で実際にアンカーの読み取り/書き込みを行うことができます。

于 2012-06-27T10:54:11.627 に答える
0

最も簡単な方法は、データベースを同期するためのロジックを別のプロジェクトに分離し、データベースを作成する小さなコンソール アプリを作成し、マスター データベースと直接同期してデータを事前入力し、圧縮してサーバーに自動的に配置することだと思います。その後、このコンソール アプリを手動で、またはビルド プロセスの一部としてトリガーできます。

于 2012-06-26T07:32:03.120 に答える
0

「スナップショットの初期化」と呼ばれるものをやりたいようです。スナップショットの初期化の詳細については、次の記事を参照してください: http://msdn.microsoft.com/en-us/library/gg294193.aspx

于 2012-06-26T14:51:57.533 に答える