【发布时间】:2017-04-08 13:26:28
【问题描述】:
我试图弄清楚如何从 nuget 中的包管理器运行特定迁移。
我尝试过运行:
update-database -TargetMigration test32
但我确实收到了这条消息:
找不到与参数名称“TargetMigration”匹配的参数。
我从 Microsoft 的文档中了解到该命令到以前的 ef 版本。
所以我不确定它在 ef core 中的情况。
【问题讨论】:
我试图弄清楚如何从 nuget 中的包管理器运行特定迁移。
我尝试过运行:
update-database -TargetMigration test32
但我确实收到了这条消息:
找不到与参数名称“TargetMigration”匹配的参数。
我从 Microsoft 的文档中了解到该命令到以前的 ef 版本。
所以我不确定它在 ef core 中的情况。
【问题讨论】:
根据EF Core Docs,正确的参数名称是-Target(对于EF Core 1.1)或-Migration(对于EF Core 2.0)
所以在你的情况下:
update-database -target test32
或
update-database -migration test32
“现代”方式是使用“常规”命令提示符和.NET Core CLI,以及类似dotnet ef database update <target>的命令
【讨论】:
Dmitry 给出的最佳答案有点不正确。
没有参数-Target。唯一可以应用的参数是-Migration。
因此,正确答案是:
Update-Database -Migration test32
【讨论】:
test32),这是您通常想要的,因为迁移可能一个接一个,并且必须按顺序运行。
对于 EF Core 3.1,通过包管理器控制台:
dotnet ef database update YourMigrationName
【讨论】:
只是想补充一下 Plastiquewind 提到的内容。在当前版本中,没有 -target 参数。您必须使用-migration。此外,您可以使用 -context 参数指定上下文(如果您有多个)。
Update-database -context MyContext -migration MyMigration
【讨论】: