【问题标题】:EF (Entity Framework) 4.3 Migration tool does not work on EF 4.1 DBEF(实体框架)4.3 迁移工具不适用于 EF 4.1 DB
【发布时间】:2013-08-05 15:14:42
【问题描述】:

我想修改一个使用 EF 4.1(代码优先)开发的数据库。我将项目升级到 EF 4.3 并按照以下步骤操作: http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

一切进展顺利,但是当我想在当前数据库(EF 4.1 Code First)上进行测试时,Update-Database 会引发此错误:

无法构建下一次迁移,因为目标数据库是 使用早于 EF 4.3 的 Code First 版本创建,并且不 包含迁移历史表。开始使用迁移 针对此数据库,确保当前模型与 目标数据库并执行迁移更新过程。 (在视觉 Studio,您可以使用包管理器中的 Update-Database 命令 执行迁移更新过程的控制台)。

我想知道如何迁移 EF 4.1(代码优先)数据库?此外,该数据库是实时的并且有数据,我不能删除表。

【问题讨论】:

  • 读取错误信息。按照指示。

标签: entity-framework entity-framework-4.1 code-first entity-framework-4.3 entity-framework-migrations


【解决方案1】:

在对模型进行更改之前,您需要创建一个空迁移并执行它。它将为您创建迁移历史表。之后,您可以使用迁移进行新的更改。我就这个话题写了walkthrough article

【讨论】:

  • 嗨,Ladislav,我按照您的指示进行操作,但是当我想在包管理器控制台中添加初始迁移时(PM> Add-Migration InitialMigration -IgnoreChanges),它再次引发了此错误:“无法为下一次迁移搭建脚手架因为目标数据库是使用早于 EF 4.3 的 Code First 版本创建的,并且不包含迁移历史记录表...."
  • 成功了,提示你应该在任何更改之前执行“Add-Migration InitialMigration -IgnoreChanges”
  • 那是文章最后一段提到的。
  • 我更新了我的文章以包含有关您的问题的信息(链接此问题)。
  • 澄清一下,您的模型类必须当前与您的数据库匹配,才能使此答案起作用。如果您(像我一样)进行了更改,然后第一次尝试进行迁移,则需要返回并恢复您的模型更改,然后才能启用和使用迁移。
【解决方案2】:

在对模型进行任何更改之前运行“Add-Migration InitialMigration -IgnoreChanges”。进行所需的更改,然后运行“update-database”

【讨论】:

    猜你喜欢
    • 2021-07-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多