以前,添加迁移对我不起作用,因为迁移和dbcontext位于不同的程序集中。在将它们都移动到同一装配体中之后,不再出现该错误,而是出现了这个新错误。
由于除了堆栈跟踪之外没有太多信息,所以我无法找到问题所在。
命令:
dotnet-ef migrations add identity
堆栈跟踪:
System.NullReferenceException: 你调用的对象是空的。在 Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper.Literal(字符串 价值) Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationOperationGenerator.Generate(CreateTableOperation 操作,IndentedStringBuilder构建器)位于 Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationOperationGenerator.Generate(String builderName,IReadOnlyList1操作,IndentedStringBuilder构建器) 在 Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGenerator.GenerateMigration(String migrationNamespace,字符串migrationName,IReadOnlyList1 upOperations, IReadOnlyList1 downOperations)位于 Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.ScaffoldMigration(String migrationName,字符串rootNamespace,字符串subNamespace,字符串 语言) Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String 名称,字符串outputDir,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String 名称,字符串outputDir,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration。<> c__DisplayClass0_0。<。ctor> b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase。<> c__DisplayClass3_01.b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作 操作)对象引用未设置为对象的实例。
答案 0 :(得分:2)
有issue个具有EF内核,当您System.NullReferenceException
时会导致Add-Migration
。
System.NullReferenceException: Object reference not set to an instance of an object.
发生问题的原因是您的任何实体配置中都包含HasComment
。它是固定的,将通过EF core 3.1 Nuget(当前处于预览状态)可用。对于EF core 3.0,解决方法是删除所有HasComment
。
答案 1 :(得分:0)
请从DbContext中删除 有评论