1

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

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

如何禁止通过 EF 创建表?

4

2 回答 2

2

当应用程序启动时(例如Application_Start()方法global.asax.cs)指示您要用于创建数据库的策略:

 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourContext>());

DatabaseSystem.Data.Entity命名空间中。

如果使用new DropCreateDatabaseIfModelChanges<YourContext>()它将删除数据库并尝试创建数据库模式和 POCO 之间的更改。

于 2012-11-04T21:48:06.013 回答
1

把它放在你的 DbContext 实现中:

// static constructor
static MyDbContext()
{
    Database.SetInitializer<MyDbContext>(null);
}
于 2012-11-04T21:52:59.567 回答