0

Entity Framework Code First アプローチを使用してデータベースを操作する ASP.NET MVC3 Web サイトがあるとします。

システムは現在、テスト環境で動作しています。

DbContext の一部が次の場合:

public DbSet<Incident> Incidents { get; set; }

たとえば、Properties を Incident クラスに追加すると、DB-Code コラボレーションの問題が発生しますか?

それとも、フレームワークはデータベース テーブルを自動的に更新するだけで、新しいプロパティなしで作成された古いレコードを null として扱いますか?

4

2 に答える 2

2

データベースの初期化設定に依存します。(CreateDatabaseIfNotExists、DropCreateDatabaseWhenModelChanges、DropCreateDatabaseAlways)

例: Database.SetInitializer(new CreateDatabaseIfNotExists())

  • データベースの初期化を設定しなかった場合、EF は既定の初期化子 " CreateDatabaseIfNotExists " を使用し、InvalidOperationError をスローします。

  • " DropCreateDatabaseWhenModelChanges "として設定すると、EF は新しいモデルに基づいてデータベースを再作成します。ただし、データベースを作成するために必要なアクセス権も必要であり、本番環境では危険です。

  • " DropCreateDatabaseAlways "として設定すると、アプリケーションを実行するたびに EF によってデータベースが再作成されます。

于 2012-01-19T15:27:21.630 に答える
0

私の知る限り、データベースは自動的に更新されません。コンテキストが変更されたことを示すエラー メッセージが表示されます。そのためには、データベースに「ドロップして作成」する必要があります!!

于 2012-01-19T14:25:33.167 に答える