1

モデルコンテキストファイルで言及されました

モデルスキーマを変更するたびにEntityFrameworkがデータベースを自動的に削除して再生成するようにする場合は、Global.asaxファイルのApplication_Startメソッドに次のコードを追加します。注:これにより、モデルが変更されるたびにデータベースが破棄されて再作成されます。

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<HMS.Models.HMSContext>());

そのため、このコードを内のGlobal.asaxファイルに追加しましたprotected void Application_Start()

この行を追加すると、モデルクラスに変更を加えると、データベース全体が削除されます。これを回避する別の方法はありますか?それでもモデルの変更を行うことができますか?

つまり、アプリケーションを再構築して実行するときにモデルの変更を実行した後、データベースが削除され、空のモデルテーブルがすべて再生成されます。そのため、入力したすべてのデータを失い、テーブルデータを保持したいと思います。

4

1 に答える 1

0

EF Code First 4.1 を使用している場合、いいえ、ドロップして再作成するだけです。EF バージョン 5 は、基盤となるデータベースの動的変更をサポートしているようです。現時点ではベータ版ですが、試してみたい場合は本番環境で使用できます。NuGet からインストールできます。

于 2012-07-11T09:03:35.133 に答える