カスタム DbContext クラスがあります。システムに既存のテーブルがあります。POCO ベースのシステムをセットアップしました。
テーブルの DbSet をクエリしようとすると、テーブルを作成しようとします。テーブルがDBに既に存在するようになったので、SQLサーバーは例外をスローします。
EFによるテーブルの作成を抑制する方法は?
カスタム DbContext クラスがあります。システムに既存のテーブルがあります。POCO ベースのシステムをセットアップしました。
テーブルの DbSet をクエリしようとすると、テーブルを作成しようとします。テーブルがDBに既に存在するようになったので、SQLサーバーは例外をスローします。
EFによるテーブルの作成を抑制する方法は?
アプリケーションの起動時 (例:Application_Start()
のメソッドglobal.asax.cs
) で、データベースの作成に使用する戦略を指示します。
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourContext>());
Database
System.Data.Entity
名前空間にあります。
使用する場合new DropCreateDatabaseIfModelChanges<YourContext>()
、データベースを削除し、db スキーマと POCO の間に変更がある場合はそれを作成しようとします。
これを DbContext 実装に入れます。
// static constructor
static MyDbContext()
{
Database.SetInitializer<MyDbContext>(null);
}