1

当我将代码部署到测试环境时,我得到“支持上下文的模型自创建数据库以来已更改”。数据库是通过在数据库上运行脚本输出来创建的update-database -script。因此,它最初具有与我的开发数据库服务器具有相同值的迁移历史表。已经有很多关于这个问题的讨论——其中大部分建议只是放弃表。所以我放弃了它,一切都很好。

但是是吗?真的是这个想法吗?还是我可能没有正确使用迁移?我没有发布任何代码,因为我不确定什么对你最有帮助。

编辑:我会换一种方式?我从 VS 内的控制台生成了 sql 脚本,同时指向我的本地 SQL Express。我已经采用了那个确切的脚本(包括迁移历史表并在最后插入)并在一个全新的数据库服务器上运行它(测试)。我已将我的网站代码发布到匹配的测试网络服务器,但我得到了错误。这是应该使用迁移的方式吗?

4

1 回答 1

2

如果您在 Update-Database 之后使用了 -script 标志,那实际上并没有更新数据库。为了您的方便,它只输出 SQL 脚本。您必须在没有 -script 标志的情况下运行 Update-Database 才能真正更新数据库。

按顺序,您应该运行:

  • Enable-Migrations(在项目的整个生命周期内仅一次)
  • 添加迁移(每次开发人员添加模型更改时一次)
  • 更新数据库(在您或其他任何人添加迁移之后)

我写了一篇博客文章,其中包含分步说明、工作示例和常见问题。 http://wakeupandcode.com/entity-framework-code-first-migrations/

希望这可以帮助!

于 2013-10-29T20:37:16.927 回答