您如何在 visual studio 社区版中应用挂起的显式迁移? (ASP.Net)

How do you apply pending explicit migrations in visual studios community edition? (ASP.Net)

我试图修改我的代码第一次迁移,以便我可以向数据库添加一个新的 table,称为 "GunControl." 但是,当我在程序包管理器中输入 "Add-Migration GunControl" ,我收到错误消息:

"Unable to generate an explicit migration because the following explicit migrations are pending: [201705171404346_Questionnaire]. Apply the pending explicit migrations before attempting to generate a new explicit migration."

QuestionnaireDbEntities.mdf是by db的名称,GunControl继承自class问卷。我在网上到处都看过,但我找不到办法做到这一点。非常感谢您的宝贵时间!

发生这种情况是因为您已经有一个正在连接的现有数据库。数据库跟踪应用了哪些迁移,当您 运行 Add-Migration 时,它会将数据库架构与您的模型进行比较,并查看您之前是否创建了迁移 (201705171404346_Questionnaire)尚未应用于实际数据库。因此,新迁移在比较数据库时无法确定架构中发生了什么变化。

您的选择是:

  1. 运行 Update-Database 应用之前的迁移。
  2. 删除迁移文件 201705171404346_Questionnaire.cs,然后再次 运行 Add-Migration,这将包含两组更改。
  3. 删除整个数据库和所有迁移文件,然后运行Add-Migration创建初始模式。