我有一个自定义的DbContext类。 我在系统中有现有表。 我已经设置了一个基于POCO的系统。
当我尝试查询DbSet表时,它会尝试创建表。 现在该表已经存在于DB中,sql server将抛出异常。
如何通过EF禁止创建表格?
答案 0 :(得分:2)
当应用程序启动时(例如Application_Start()
global.asax.cs
方法)指示您要用于创建数据库的策略:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourContext>());
Database
位于System.Data.Entity
名称空间中。
如果使用new DropCreateDatabaseIfModelChanges<YourContext>()
,它将删除数据库并尝试在数据库模式和POCO之间进行更改时创建数据库。
答案 1 :(得分:1)
将它放在DbContext实现中:
// static constructor
static MyDbContext()
{
Database.SetInitializer<MyDbContext>(null);
}