EFCore数据迁移在添加第二次迁移时抛出错误

时间:2020-07-10 04:01:16

标签: entity-framework asp.net-core ef-code-first entity-framework-migrations ef-core-3.1

当我使用efcore在asp.net core 3.1应用程序上创建迁移时,它运行正常。

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

如果我只是添加一个新的Domain类(实体)并在我的模型配置构建器上进行配置,然后运行命令:

dotnet-ef migrations add Dev001 --project ..\Infrastructure\LetzIt.SqlServerDbService\LetzIt.SqlServerDbService.csproj --startup-project .\LetzIt.WebApi\LetzIt.WebApi.csproj

输出给我这个错误:

enter image description here

ps:很抱歉,该图像,但是这里的错误很难理解。 主要行是:

System.ArgumentException:至少一个对象必须实现IComparable。

无法比较数组中的两个元素。

我对此进行了很多搜索,但对我来说什么都没有出现。我自己没有使用任何SORT。我的代码中不再有OrderBy。

以下是实体配置的示例:

dotnet-ef migrations add Dev002 --project ..\Infrastructure\LetzIt.SqlServerDbService\LetzIt.SqlServerDbService.csproj --startup-project .\LetzIt.WebApi\LetzIt.WebApi.csproj

我实体的每个属性都是ValueObjects,这就是为什么我使用HasConversion的原因。

同样,第一次迁移工作正常。如果我现在(在创建新实体之后)删除迁移,然后再次创建Dev001迁移,那就成功了!

如果我尝试连续两次进行迁移,那是行不通的。

预先感谢大家。

更多技术细节

  • EF核心版本:3.1.5
  • 数据库提供程序:Sql Server
  • 目标框架:ASP.NET Core 3.1
  • 操作系统:Windows 10
  • IDE:Visual Studio 2019 16.3

1 个答案:

答案 0 :(得分:0)

这是EFCore稳定版本的错误。

链接显示答案:

https://github.com/dotnet/efcore/issues/21576