私のアプリケーションには、ローカル データベースとサーバー データベースがあります。どちらも SQLite DB です。C#コードを使用して、それらを同期する必要があります(双方向同期、つまりサーバーからクライアントへ、クライアントからサーバーへ)。n 個のローカル システムと 1 つのサーバーがあります。
私の要件は、ユーザーが同期操作をトリガーすることです。つまり、任意のボタンクリックイベントです。アプリケーションは自動的に同期できません。アプリケーションのロード時でもありません。
Microsoft Sync Framework を検索しましたが、アプリケーションを使用するすべてのローカル システムに同期フレームワークがインストールされていないため、使用できません。
以下のシーンは、コードでサポートされている必要があります。
- サーバーのテーブルに新しいレコードが挿入された場合、ユーザーが同期をトリガーした後、同じレコードがローカルに挿入されます。
- 新しいレコードがローカルのテーブルに挿入された場合、ユーザーが同期をトリガーした後、同じレコードがサーバーに挿入されます。
- サーバーとクライアントの両方にレコードが挿入された場合、両方が同期され、新しいレコードが両方に挿入されます。
- レコードが更新された場合は、同期も行う必要があります。
ADO.NET の切断されたアーキテクチャを使用してデータセット オブジェクトを使用しようとしましたが、データ全体を取得するとパフォーマンスのオーバーヘッドが生じます。
.NET 4.0、プラットフォーム x86、および WPF アプリケーションを使用しています