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

时间:2017-07-24 13:45:21

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

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

简而言之,我无法使用ASP.NET Core 1.1.2项目中的代码对我的数据库进行任何更新。这是一个例外,因为它错过了一个我认为不与PMC有关的论点。

使用“Update-Database”时出现错误消息:

Error-Image-Update-Database

交叉检查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'表相同(忽略上次安排更新的迁移):

enter image description here

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

版本信息:

  • Visual Studio Enterprise 2017 - 15.2(26430.16)发布
  • Entity Framework Core v1.1.2
  • ASP.NET Core v1.1.2

任何指针都会非常感激。

修改

@DavidG

dotnet ef database update

enter image description here

Update-Database -TargetMigration AdUserImage

enter image description here

1 个答案:

答案 0 :(得分:2)

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

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