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