1

初めてWebサイトを構築したときに、EF4コードファースト(マイグレーションなし)を使用していました。今度はクライアントがコードベースのリファクタリングを必要とするいくつかの新機能を求めました。リファクタリングの一部は、私のモデルを別のアセンブリに移動することでした(最初からすぐに実行したはずでしたが、その時点ではわかりませんでした)。とにかく、私のコードベース全体が変更され、ほぼすべてのアセンブリ名と名前空間が変更されたため、ステージング環境にWebサイトを展開すると、EFによってテストデータベースが再生成されました。EFコードの防止生産データベースの再生成

私の質問は、それを避けるためにできることがありますか?私はまだ移行を使用していませんが、それは実行可能な解決策ですか?

P.S私はまた、そのようなことが起こった理由を知りたいと思います。モデルクラスのプロパティを実際に変更したことはありません。今では、別の名前空間に属していて、まったく新しいモデルとしてEFに見られたのでしょうか?

答えて

2

あなたが任意のテーブルを追加しようと変更していないことが確実な場合:アプリケーションの初期化に

Database.SetInitializer<YourContext>(null); 

。アプリケーションから初期化ストラテジが削除され、データベースが作成されなくなります。

+0

実際にうまくいった! :)そこから、データベーススキーマを変更するために通常EF Migrationを使用できるはずです。 – Kassem

関連する問題