私の状況: EF 4.3、SQL Compact 4 のプライベート インストール、.Net FW 4、c# winform
問題: アプリケーションが展開された後、避けられない変更要求があり、SQL コンパクト データベースの唯一のテーブルに新しいフィールドを作成する必要がありました。アプリのインストール中に、SQL コンパクト データベースがユーザーの Application Data フォルダーに配置されるため、正常に書き込むことができます。プログラムを更新して再デプロイしましたが、次の動作が発生しています。
- アプリの古いバージョンをアンインストールしても、ユーザーのアプリケーション データ フォルダーにある SQL コンパクト データベースはアンインストールされません。
- アプリケーションの更新バージョンをインストールしても、ユーザーのアプリケーション内の古い SQL Compact データベースは上書きされません。
列が追加された新しいデータベースはコピーされないため、ユーザーが実行するとアプリケーションが壊れます。私の調査によると、問題を解決するには「自動 EF 移行」を使用する必要があります。私の状況では、db テーブルをすばやくチェックし、必要に応じて欠落している列を追加することをお勧めします。
私はEFをデータベースの最初の方法で使用しています。私の状況とこれを修正するための望ましい戦略に合った良い例を見つけるのに苦労しています。
どんな助けでも大歓迎です!:-)