Tal*_*ris 6 c# asp.net-mvc entity-framework ef-migrations
我正在尝试使用EF代码优先和迁移来弄清楚如何实现以下部署方案.我的想法是,我想用向后兼容的架构更改升级数据库(例如:添加一列)并测试一切仍然有效.它的灵感来自绿色/蓝色部署,但并不完全遵循这种模式.这背后的原因是遵循这个过程:
我肯定会面临的问题是,在第2步(和第4步),我肯定会从EF获得关于模型被更改的错误,尽管所有数据库更改都与现有代码兼容...
我知道解决方案是将数据库"向下"迁移到以前的版本(甚至进行数据库备份),但可能会发生某些迁移非常复杂且"向下"部分可能被破坏或者编码很差.
所以我的问题是:有没有办法避免EF检查模型或最终意识到更改是向后兼容的?
小智 4
将 dinitializer 设置为 null 将放弃兼容性检查,例如
public class MyDBContext: DbContext
{
public MyDBContext() : base("myConnString")
{
//Disable initializer
Database.SetInitializer<MyDBContext>(null);
}
public DbSet<A> As { get; set; }
public DbSet<B> Bs { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这里也推荐