字符串参数’migrationId’不能为空

如果这已经得到回答,请提前道歉,但我诚实地深挖并找不到与此错误有关的任何内容。

简而言之,我无法使用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.b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) The string argument 'migrationId' cannot be empty. 

Migrations文件夹与我的’_EFMigrationsHistory’表相同(忽略计划更新的上次迁移):

在此处输入图像描述

我甚至已经删除了迁移文件夹和’_EFMigrationsHistory’表并再次启动,这表示同样的错误。 我也打算测试’v2.0.0-preview2-final’以防它是一个bug,但遗憾的是我的VS版只需要发布版本,显然你需要15.3。

版本信息:

  • Visual Studio Enterprise 2017 – 15.2(26430.16)发布
  • entity framework核心v1.1.2
  • ASP.NET Core v1.1.2

任何指针都将非常感激。

编辑

@DavidG

对于dotnet ef database update

在此处输入图像描述

Update-Database -TargetMigration AdUserImage

在此处输入图像描述

我终于解决了这个问题,感谢@DavidG让我朝着正确的方向前进,所以非常感谢你。

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