Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net EF代码首次迁移不适用于Azure_.net_Entity Framework_Azure_Entity Framework Migrations - Fatal编程技术网

.net EF代码首次迁移不适用于Azure

.net EF代码首次迁移不适用于Azure,.net,entity-framework,azure,entity-framework-migrations,.net,Entity Framework,Azure,Entity Framework Migrations,这让我很沮丧,我已经在这里讨论了好几次问题/答案,我似乎遗漏了一些非常基本的东西。我将EF6与MVC5和SQL Server一起使用。据我所知,目前的流程如下: 创建模型和初始迁移 运行更新数据库(本地) 部署到Azure,选中“执行迁移”复选框 修改模型 创建迁移 更新数据库(本地) 部署到Azure,选中“执行迁移”复选框 它在本地工作,但我在部署到Azure时始终会得到: “自创建数据库以来,支持{上下文名称}上下文的模型发生了变化。请考虑使用代码第一次迁移来更新数据库())< /P> 如

这让我很沮丧,我已经在这里讨论了好几次问题/答案,我似乎遗漏了一些非常基本的东西。我将EF6与MVC5和SQL Server一起使用。据我所知,目前的流程如下:

  • 创建模型和初始迁移
  • 运行更新数据库(本地)
  • 部署到Azure,选中“执行迁移”复选框
  • 修改模型
  • 创建迁移
  • 更新数据库(本地)
  • 部署到Azure,选中“执行迁移”复选框
  • 它在本地工作,但我在部署到Azure时始终会得到:

    “自创建数据库以来,支持{上下文名称}上下文的模型发生了变化。请考虑使用代码第一次迁移来更新数据库())< /P> 如果我删除数据库,删除所有迁移并创建一个新的“初始”迁移,它会重新创建空数据库,我的软件也会正常工作。但我不希望丢失所有数据,我认为这就是EF迁移的要点

    那么我做错了什么


    作为补充说明,在我最近的尝试中,我手动修改了azure数据库以匹配本地数据库,但仍然出现上述错误。

    您能否运行指向azure DB而非本地数据库的更新数据库命令。是否存在此错误

    您可以手动更改Azure数据库,但u MigrationHistory表必须与本地数据库同步。我有时会在本地数据库上应用更改,然后转到Azure数据库,模拟这些更改,然后清除Azure db u MigrationHistory表中的行,并从本地u MigrationHistory表中复制所有行已经应用了ter迁移

    这是实体框架(EF)检查是否已应用迁移的内容—检查行数是否匹配

    还请注意,当将迁移应用到Azure中包含大量数据的表时,它通常会超时,因此您最终会手动执行迁移