【问题标题】:Can I access a migrated EF database with "old" code?我可以使用“旧”代码访问迁移的 EF 数据库吗?
【发布时间】:2014-07-21 17:25:38
【问题描述】:

如果我有一个需要更改架构的 EF6 Code First 环境,是否可以对其进行配置,以便在部署代码之前应用迁移(通过更新数据库脚本)?

我刚刚使用控制台应用程序运行了一个简单的测试,该应用程序使用迁移“初始”构建了一个数据库,此时获取了应用程序的副本。然后我通过向我的实体添加一个新属性来修改架构并添加一个“V2”迁移并运行更新数据库。当尝试针对这个迁移的数据库运行“旧”代码时,我得到一个 InvalidOperationException “支持上下文的模型自数据库创建以来已更改。”

在持续交付类型的操作中,您可能希望一台服务器运行新应用程序代码,而其他服务器运行旧版本,是否可以先使用 EF 代码?

【问题讨论】:

  • 可以修改旧代码吗?如果是 disabling schema checking 在旧代码中是一个选项。您确定添加的列可以为空还是作为默认值?
  • 这看起来很理想。这适用于正在进行的部署,以便我们可以在部署代码之前运行脚本化迁移,这样我们就可以确实禁用初始化程序。非常感谢。

标签: entity-framework ef-code-first entity-framework-migrations


【解决方案1】:

你能修改旧代码吗?

如果是,旧代码中的disabling schema checking 是一个选项。

顺便说一句:您确定添加的列可以为空还是作为默认值?

为避免意外,您还可以使用对架构具有只读权限的连接字符串来避免数据损坏。

【讨论】:

    猜你喜欢
    • 2021-02-22
    • 2017-07-27
    • 2017-01-31
    • 1970-01-01
    • 2020-01-25
    • 2021-10-08
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多