DbContext尝试创建表

时间:2012-11-04 21:37:49

标签: c# frameworks entity

我有一个自定义的DbContext类。 我在系统中有现有表。 我已经设置了一个基于POCO的系统。

当我尝试查询DbSet表时,它会尝试创建表。 现在该表已经存在于DB中,sql server将抛出异常。

如何通过EF禁止创建表格?

2 个答案:

答案 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);
}