如果使用Code First EF6,并禁用自动迁移,我希望能够自动创建一个新数据库(如果不存在)。在Entity Framework中自动迁移出现之前,这种方法非常有效。但是,在EF6中,您会收到以下异常信息:“System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException”,提示无法更新数据库以匹配当前模型,因为存在未处理的更改且自动迁移被禁用。要解决此问题,请将待处理的模型更改写入基于代码的迁移或启用自动迁移。请将“DbMigrationsConfiguration.AutomaticMigrationsEnabled”设置为true以启用自动迁移。为了验证此异常不是由生产项目中的外部因素引起的,可以创建一个新的测试项目。对于我的数据库上下文,我有:
如果没有数据库,我只需要能够创建一个新的数据库(这样我就可以在我的开发机器上快速删除并重新创建一个新的数据库以进行快速开发)。但是,我不想启用自动迁移,因为我们使用第三方工具在生产中进行迁移,如果启用了自动迁移且模式已更改,EF6会报错。
如果有任何见解或其他解决方案来满足这些需求,将不胜感激。谢谢!
public class MyContext : DbContext
{
public DbSet<Entity> Entities { get; set; }
public MyContext()
{
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
}
}
然后我添加了一个数据库迁移配置文件,以禁用自动迁移:
public class DatabaseConfiguration : DbMigrationsConfiguration<MyContext>
{
public DatabaseConfiguration()
{
this.AutomaticMigrationsEnabled = false;
}
}
如果没有数据库,我只需要能够创建一个新的数据库(这样我就可以在我的开发机器上快速删除并重新创建一个新的数据库以进行快速开发)。但是,我不想启用自动迁移,因为我们使用第三方工具在生产中进行迁移,如果启用了自动迁移且模式已更改,EF6会报错。
如果有任何见解或其他解决方案来满足这些需求,将不胜感激。谢谢!
DbMigrationsConfiguration
吗? - jjj