【问题标题】:The string argument 'migrationId' cannot be empty字符串参数“migrationId”不能为空
【发布时间】:2017-12-30 03:22:33
【问题描述】:

如果已经回答了这个问题,请提前道歉,但老实说,我已经深入挖掘并且找不到与此错误相关的任何内容。

简而言之,我无法先在我的 ASP.NET Core 1.1.2 项目中使用代码对我的数据库进行任何更新。它抛出了一个异常,因为它缺少一个我猜与 PMC 无关的论点。

使用“更新数据库”时的错误消息:

用于交叉检查 Google 的文本;-)

    System.ArgumentException: The string argument 'migrationId' cannot be empty.
   at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.GetAppliedMigrations()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
The string argument 'migrationId' cannot be empty.

Migrations 文件夹与我的“_EFMigrationsHistory”表相同(忽略计划更新的最后一次迁移):

我什至已经删除了 Migrations 文件夹和 '_EFMigrationsHistory' 表并重新开始,但出现了同样的错误。我还打算测试'v2.0.0-preview2-final'以防万一它是一个错误,但遗憾的是我的VS版本只需要发布版本,显然你需要15.3。

版本信息:

  • Visual Studio Enterprise 2017 - 15.2 (26430.16) 版本
  • 实体框架核心 v1.1.2
  • ASP.NET Core v1.1.2

任何指针将不胜感激。

编辑

@DavidG

对于dotnet ef database update

对于Update-Database -TargetMigration AdUserImage

【问题讨论】:

  • 如果指定目标迁移会发生什么?例如:Update-Database -TargetMigration AdUserImage
  • 或使用 EF Core CLI:dotnet ef database update
  • 试试这个,先删除迁移文件夹,然后从数据库中删除迁移历史,然后尝试运行add-migrationupdate-database。跨度>
  • 是的,这也是我的想法(明确定位迁移)。您不应该 必须 这样做,但根据错误,听起来可能会解决它。每次都必须这样做有点痛苦,但至少它可能会给你一个解决方法。
  • 上次迁移是如何创建的?在你的 Migrations 文件夹中看起来有点奇怪,是不是在创建过程中出现了问题?

标签: c# asp.net-mvc entity-framework-core entity-framework-migrations


【解决方案1】:

感谢@DavidG,我终于解决了这个问题,非常感谢你。

我意识到,当我在我的 PC 上检查已安装的 SDK 时,我注意到我已经安装了 Dotnet 2.0.0 的预发行版(老实说,我不记得这样做了)。从 PMC 检查 Dotnet 版本 (dotnet --version) 确认 VS 使用的是 2.0.0。卸载所有 Dotnet SDK 和运行时,然后从 here 重新安装最新版本的 Dotnet(1.1.2) 后,Update-Database 正常工作......很少!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2014-12-18
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多