1

モデルと DB スキーマ プロセスの同期の動作をカスタマイズできることは明らかです。DropCreateDatabaseIfModelChanges<>そのためにクラスを使用しています。

作業中のプロジェクトとサイトがありDB、データを入力しているとします。すべてが正常に機能しています。

ある日、いくつかの機能を変更する必要があると判断しました。変更はモデルのプロパティに影響します (モデルの名前を変更/削除/追加できます。一部のモデルは新しくなり、一部のモデルは削除されます)。

私の質問: すべての変更をチェックインすると、展開したサイトの既存のデータはどうなりますか?

私はそれを失いますか?もしそうなら、どうすればそれを避けることができますか?

4

1 に答える 1

5

はい、モデルが変更されて使用している場合、データは失われますDropCreateDatabaseIfModelChanges<T>

これを回避するには:

本番環境ではDb初期化子を使用しないでください(おそらくを除くCreateDatabaseIfNotExists<T>)。DB初期化は、本番環境での使用ではなく、開発エクスペリエンスをスムーズにするためにあります。必要なのは、EntityFramework4.3の新しい移行機能です。(現在Beta1)これは、自動およびコードベースのデータベーススキーマ移行の機能を提供します。

また、ファイルからDB初期化子*.configを設定できるようになったため、本番構成で開発時間と初期化子なしに簡単に切り替えることができDropCreateDatabaseIfModelChangesます。

于 2012-01-21T16:52:45.260 に答える