【发布时间】:2016-10-11 21:03:49
【问题描述】:
我有一个在 Azure 上运行的 EF 6.13 + MVC 5 网站,我正在尝试使用 Azure 的部署槽,它基本上总是有 2 个(或更多)站点在运行,同时使用相同的数据库和不同的版本在源代码中,将其视为 Slot1 具有当前生产代码,而 Slot2 具有 vNext 代码。
我遇到的问题是,当 Slot2 中发生迁移时,即使我们这样做是为了不影响兼容性,然后 EF 会抱怨DB 与 Model 的版本不同。
我已经阅读了这个问题:
- EF backward compatible DB migrations
- How can I disable model compatibility checking in Entity Framework 4.3?
但在这两种情况下,他们确保 EF 不会抱怨模型的兼容性,方法是使用它的一些变体使其 NOT CHECK 完全兼容:
public class MyDBContext: DbContext
{
public MyDBContext() : base("myConnString")
{
//Disable initializer
Database.SetInitializer<MyDBContext>(null);
}
}
然而,我有一些不清楚的地方:
如果我更改了模型兼容性检查并且没有自动运行迁移,那么如何迁移我的数据库?
我可以让我的
DbContext检查模型兼容性并仅在它损坏时警告我(比如我删除了一个列或类似的东西,而不是我添加了另一个列,我知道这可能很麻烦但请忍耐我并假设我对这类事件有一个计划)
【问题讨论】:
标签: c# asp.net-mvc entity-framework azure