假设我有一个只有一个上下文的简单网站
public class DataContext : DbContext
{
public DbSet<Stuff> Stuff { get; set; }
}
和一个模型
public class Stuff
{
public int ID {get;set; }
public string Name {get;set;}
}
我正在使用代码优先 EF 模型,我点击了更新数据库,它创建了我的表,然后我发布了我的网站。一切都很好。但是,然后我决定要向我的模型添加一个属性
public class Stuff
{
public int ID {get;set; }
public string Name {get;set;}
public int StuffType {get;set;}
}
现在我点击 update-database 并使用新属性更新数据库,但是发布的站点现在已损坏,因为它的模型与数据库模型已过时。
除了在任何人注意到之前疯狂地尝试重新发布该站点之外,是否有任何其他方法可以在不破坏已发布站点的情况下使用代码优先迁移?
我需要有两个数据库吗?如果是这样,我该如何维护两者之间的模型?由于我通常有(至少)两个 git 分支,并且发布的站点正在运行 master 分支的代码,而我正在开发分支上工作,这进一步加剧了这一点——这是我要修改我的分支的地方模型。
避免此类问题的通常工作流程是什么?
最佳答案
尝试为您的 DataContext 禁用数据库初始化程序。 查看此答案 Entity Framework 6.1.1 disable model compatibility checking
关于c# - 在不破坏已发布站点的情况下,代码优先 EF 中更新数据库模型的工作流程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026615/