添加迁移值不能为空。参数名称:语言

时间:2018-03-07 09:34:00

标签: c# entity-framework-core entity-framework-core-migrations

我正在尝试创建一个新的迁移但是我得到一个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

4 个答案:

答案 0 :(得分:7)

这是问题#11075。您的工具版本与运行时版本不匹配。确保您已将每个Microsoft.EntityFrameworkCore包更新到2.1.0-preview1-final。

答案 1 :(得分:4)

它与EF Core而不是EF6有关,看起来2.1.0.preview1-final版本中有一个错误。

  
      
  • 使用dotnet ef --version
  • 检查您运行的版本   
  • 降级到Microsoft.EntityFrameworkCore.Design 2.0.1版本。
  •   

答案 2 :(得分:0)

对于VS 2017版本15.7.1中的EF Core for .NET Core 2.0.1,我从项目文件中删除了DotNetCliToolReference元素。

enter image description here

enter image description here

答案 3 :(得分:0)

我认为这是一个错误。
我正在使用EF Core 2.2.4,我正在尝试通过以下方式回滚迁移:

migrationBuilder.DropIndex(name: "myIndexName");

这是EF为我自动生成的。
方法签名说名称是唯一必需的参数(后面有2个可选参数)。 当我运行它时,我得到这个:

System.ArgumentNullException: Value cannot be null.
Parameter name: name

但是如果我为表名添加第二个参数,它将起作用:

migrationBuilder.DropIndex(
                name: "myIndexName",
                table: "myTableName");