代码之家  ›  专栏  ›  技术社区  ›  Martin Brown

数据库创建后,导致支持“ApplicationDbContext”上下文的模型发生更改的原因

  •  0
  • Martin Brown  · 技术社区  · 6 年前

    支持“ApplicationDbContext”上下文的模型自 数据库已创建。考虑使用代码优先迁移 更新数据库( http://go.microsoft.com/fwlink/?LinkId=238269 ).

    唯一的问题是数据库模式不应该改变。如果有的话,我的港口出了问题,需要修理。我不想运行迁移以将数据库升级到新版本。我想知道是什么变化导致了这一点,以便我能纠正它。

    是否有人知道实体框架如何决定数据库是否过期,以及是什么导致它引发此错误?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jim Yarbro    6 年前

    实体框架将迁移历史和数据库模型的状态存储在名为migration history的表中。

    This document has details on customizing that table.

    不过,我建议不要修改这个。相反,作为解决方法,您可以添加新的迁移,删除 Up() 方法,然后更新数据库。这将更新历史记录以匹配您当前拥有的内容。

    但是,当您添加迁移时,您可能希望首先查看它生成的代码,以查看EF认为发生了什么变化。这可能是合法的移民。

    编辑: Schema changes are compared against hashes of your SSDL.