【发布时间】:2017-02-03 07:59:39
【问题描述】:
我在 MySQL 数据库中使用实体框架模型优先方法。我在数据库中有一个列,但模型中没有该属性。所以现在我的问题是我需要将它添加到模型中并在从数据库中检索数据时填充它。所以现在我的问题是当我将此属性添加到模型时,由于缺少映射,我得到与 DB 不匹配的错误。
【问题讨论】:
标签: c# mysql entity-framework ef-model-first
我在 MySQL 数据库中使用实体框架模型优先方法。我在数据库中有一个列,但模型中没有该属性。所以现在我的问题是我需要将它添加到模型中并在从数据库中检索数据时填充它。所以现在我的问题是当我将此属性添加到模型时,由于缺少映射,我得到与 DB 不匹配的错误。
【问题讨论】:
标签: c# mysql entity-framework ef-model-first
听起来您必须手动进行迁移,然后使用新模型上下文更新 __MigrationHistory 表。
我不确定是否有官方文档,但我以前做过,这是最简单的方法:
__MigrationHistory 表中获取新行并将其复制到原始数据库中。您将寻找应该具有更长 Model 值的最后一行。
这是一个非常棘手的过程,并不总是那么容易做到。确保在生产数据库的副本上对其进行多次测试。
你也可以试试这个答案中提到的方法:https://stackoverflow.com/a/14286509/4564272
运行:Update-Database -Script 并拉取INSERT INTO [__MigrationHistory] 代码并在服务器上手动运行。
这两者都意味着 Entity Framework 应该识别数据库和模型匹配。我之前在代码第一个模型和数据库不同步时已经这样做了,这个过程使它们重新进入同步。
【讨论】: