是什么在Code First Migrations中使用迁移历史记录

时间:2013-07-10 16:04:35

标签: entity-framework entity-framework-5 ef-migrations

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

但是吗?那是真的吗?或者我可能没有正确使用迁移?我没有发布任何代码,因为我不确定什么对你有帮助。

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

1 个答案:

答案 0 :(得分:1)

如果在Update-Database之后使用了-script标志,那么实际上并不会更新数据库。它只为您提供输出SQL脚本。您必须运行不带-script标志的Update-Database才能实际更新数据库。

按顺序,你应该运行:

  • 启用 - 迁移(仅在项目的生命周期内使用一次)
  • 添加迁移(每次dev添加模型更改时一次)
  • 更新 - 数据库(在您或其他任何人添加迁移后一次)

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

希望这有帮助!