【问题标题】:Adding Property to Model in CodeFirst entity framework for an existing column in db在 Code First 实体框架中为 db 中的现有列添加属性到模型
【发布时间】:2017-02-03 07:59:39
【问题描述】:

我在 MySQL 数据库中使用实体框架模型优先方法。我在数据库中有一个列,但模型中没有该属性。所以现在我的问题是我需要将它添加到模型中并在从数据库中检索数据时填充它。所以现在我的问题是当我将此属性添加到模型时,由于缺少映射,我得到与 DB 不匹配的错误。

【问题讨论】:

    标签: c# mysql entity-framework ef-model-first


    【解决方案1】:

    听起来您必须手动进行迁移,然后使用新模型上下文更新 __MigrationHistory 表。

    我不确定是否有官方文档,但我以前做过,这是最简单的方法:

    1. 创建一个新的数据库,为空。
    2. 将其升级到当前型号。
    3. 将列与原始 MySQL 数据库中的完全相同添加到模型中。
    4. 将第二个数据库升级到新模型。
    5. __MigrationHistory 表中获取新行并将其复制到原始数据库中。

    您将寻找应该具有更长 Model 值的最后一行。

    这是一个非常棘手的过程,并不总是那么容易做到。确保在生产数据库的副本上对其进行多次测试。


    你也可以试试这个答案中提到的方法:https://stackoverflow.com/a/14286509/4564272

    运行:Update-Database -Script 并拉取INSERT INTO [__MigrationHistory] 代码并在服务器上手动运行。


    这两者都意味着 Entity Framework 应该识别数据库和模型匹配。我之前在代码第一个模型和数据库不同步时已经这样做了,这个过程使它们重新进入同步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多