【问题标题】:What causes The model backing the 'ApplicationDbContext' context has changed since the database was created什么原因支持“ApplicationDbContext”上下文的模型自创建数据库以来发生了变化
【发布时间】:2023-04-08 04:36:01
【问题描述】:

我有一个 Entity Framework 6 应用程序。我已将数据库从 SQL Server 移植到 PostgreSQL。现在,当我运行应用程序时,我收到了这个错误:

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

唯一的问题是数据库架构不应该改变。如果有,我的端口有问题需要修复。我不想运行迁移以将数据库升级到新版本。我想找出导致此问题的更改是什么,以便我可以更正它。

有谁知道 Entity Framework 如何判断数据库是否过时以及导致此错误的原因是什么?

【问题讨论】:

    标签: c# entity-framework entity-framework-6


    【解决方案1】:

    Entity Framework 将迁移历史和数据库模型的状态存储在名为 MigrationHistory 的表中。

    This document has details on customizing that table.

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

    但是,当您添加迁移时,您可能需要先查看它生成的代码,以了解 EF 认为发生了哪些变化。这实际上可能是一个合法的迁移。

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

    【讨论】:

    猜你喜欢
    • 2014-04-19
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2011-04-05
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多