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