オンラインとオフラインモードで動作するWindows C#アプリケーションを開発しました。
オンラインモードでは、SQL Serverに接続します。オフラインモードでは、ローカルDBに接続します。MS Sync FrameworkとSQL Server Compact
Microsoft Sync Framework 2.1を使用して、必要に応じて2つのデータベースを同期させます。
これまではローカルデータベースとしてSQL ServerのLocalDBインスタンスを使用しました。しかし、アプリケーションのインストールプロセス中にシステムを自動的にセットアップするのは苦労です。だから、私はSQL Server Compact 3.5または4.0を使いこなすことが大切です。これは、配布が非常に簡単です(単一のファイルにまとめられています)。
しかし、私はそれがさらにコンパクトDBのプロビジョニング・コードをコンパイルするために取得することはできません:私は(Ce
クラスなし)の前に使用
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("MyScope");
SqlCeConnection clientConn = new SqlCeConnection(OfflineConnectionString);
var clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
clientProvision.Apply();
しかしSqlCeSyncScopeProvisioning
は解決することはできません。
ここでは何かがひどく間違っています。
CompactDBを同期してローカルデータベースとして配布するにはどうすればよいですか?
LocalDBデータベースファイルを配布しようとしましたか?特定のLocalDBファイルに接続することができます。例えば。 "ConnectionString ="データソース=(LocalDb)\ v12.0; AttachDbFilename = C:\ MyDatabase.mdf;初期カタログ= MyDatabase;統合セキュリティ= True "私はクライアントPCに自分のアプリケーションを配布していないので、* SqlLocalDB *をインストールするのが面倒かどうかはわかりませんが、あなたはそれを撃つことができます。 – Gabrielius
SqlLocalDBをインストールするのは簡単ではありません。特に、既存のインスタンスを削除して新しいインスタンスをインストールする必要がある場合は、そのインスタンスを有効にする必要があります。しかし、コンパクトなアプローチが失敗した場合、私はそれを続ける必要があります。ありがとう。 –
古いものを削除するのはなぜですか?あなたの物ですか?任意の名前で新しいインスタンスを追加できます。私は、CEがちょっと古くて、最終的に死ぬだろうから、LocalDBに提唱していると思います。 – Gabrielius