1

クライアントの 1 つで同期データベース アプリケーションを開発しています。同期は完了しましたが、完全なテーブルを同期したくない部分に行き詰まりました。同期フレームワークを介して動的に選択されたレコードを同期したいだけです。

sqlceクライアント側で使用

いくつかの助けになる良いリンクも望ましいでしょう

サーバーで以下のようなものを同期しています

public SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
    {
        return serverSyncProvider.GetChanges(groupMetadata, syncSession);
    }



    public SyncContext ApplyChanges(SyncGroupMetadata groupMetadata, DataSet dataSet, SyncSession syncSession)
    {
        return serverSyncProvider.ApplyChanges(groupMetadata, dataSet, syncSession);
    }
4

3 に答える 3

5

フィルタを追加して、同期される行を制限できます。ただし、Sync Framework は動的フィルタリングをサポートしていません。同期フレームワークは、最後の同期以降に変更された内容の増分同期に基づいて同期を行います。

たとえば、顧客テーブルがあり、同期する顧客をユーザーに選択させるとします。

同期のために選択された顧客を別のテーブルに保存する可能性が最も高く、ユーザー ID を保存する SelectedCustomer としましょう。そして顧客ID。

ユーザーが選択した顧客を追加または削除すると、SelectedCustomer が更新されます。ただし、Customer テーブルを同期すると、最後の同期以降に特定の顧客レコードが変更されていない限り、何も取得されません。顧客が特定のユーザーに追加されたとしても、実際の顧客レコードは更新されず、更新も変更も検出されません。

于 2012-09-18T10:10:33.403 に答える
3

これがJuneTによって書かれた記事です;)

同期フレームワークプロビジョニング

パラメータベースのフィルタセクションに移動します

JuneTの答えは絶対に正しいです。トリックは、同期する行を選択した場合、同期する前に最初にその行を更新することです(これにより、追跡テーブルは行を更新済みとして記録します)。

于 2012-09-18T14:58:58.960 に答える