添加迁移值不能为空。参数名称:语言
Add-Migration Value cannot be null. Parameter name: language
我正在尝试创建一个新的迁移,但我得到一个 System.ArgumentNullException
说:
System.ArgumentNullException: Value cannot be null.
Parameter name: language
at Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T value,
String parameterName)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations..ctor
(IOperationReporter reporter, Assembly assembly, Assembly
startupAssembly, String projectDir, String rootNamespace, String
language)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.<>c__DisplayClass4_0.<.ct
or>b__4()
at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Value cannot be null.
Parameter name: language
它与 EF Core 有关,而不是 EF6,看起来 2.1.0.preview1-final 版本中存在错误。
- Check the version you are running with dotnet ef --version
- Downgrade to the Microsoft.EntityFrameworkCore.Design 2.0.1 version.
这是问题#11075。您的工具版本与运行时版本不匹配。确保您已将每个 Microsoft.EntityFrameworkCore 软件包更新为 2.1.0-preview1-final。
对于 VS 2017 版本 15.7.1 中的 EF Core for .NET Core 2.0.1,我从我的项目文件中删除了 DotNetCliToolReference 元素。
我认为这是一个错误。
我正在使用 EF Core 2.2.4,我正在尝试通过以下方式回滚迁移:
migrationBuilder.DropIndex(name: "myIndexName");
这是 EF 为我自动生成的。
方法签名说 name 是唯一必需的参数(后面有 2 个可选参数)。
当我 运行 这个我得到这个:
System.ArgumentNullException: Value cannot be null.
Parameter name: name
但如果我为 table 名称添加第二个参数,它会起作用:
migrationBuilder.DropIndex(
name: "myIndexName",
table: "myTableName");
我正在尝试创建一个新的迁移,但我得到一个 System.ArgumentNullException 说:
System.ArgumentNullException: Value cannot be null.
Parameter name: language
at Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T value,
String parameterName)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations..ctor
(IOperationReporter reporter, Assembly assembly, Assembly
startupAssembly, String projectDir, String rootNamespace, String
language)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.<>c__DisplayClass4_0.<.ct
or>b__4()
at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Value cannot be null.
Parameter name: language
它与 EF Core 有关,而不是 EF6,看起来 2.1.0.preview1-final 版本中存在错误。
- Check the version you are running with dotnet ef --version
- Downgrade to the Microsoft.EntityFrameworkCore.Design 2.0.1 version.
这是问题#11075。您的工具版本与运行时版本不匹配。确保您已将每个 Microsoft.EntityFrameworkCore 软件包更新为 2.1.0-preview1-final。
对于 VS 2017 版本 15.7.1 中的 EF Core for .NET Core 2.0.1,我从我的项目文件中删除了 DotNetCliToolReference 元素。
我认为这是一个错误。
我正在使用 EF Core 2.2.4,我正在尝试通过以下方式回滚迁移:
migrationBuilder.DropIndex(name: "myIndexName");
这是 EF 为我自动生成的。
方法签名说 name 是唯一必需的参数(后面有 2 个可选参数)。
当我 运行 这个我得到这个:
System.ArgumentNullException: Value cannot be null.
Parameter name: name
但如果我为 table 名称添加第二个参数,它会起作用:
migrationBuilder.DropIndex(
name: "myIndexName",
table: "myTableName");