web-dev-qa-db-ja.com

Add-MigrationValueをnullにすることはできません。パラメータ名:言語

新しい移行を作成しようとしていますが、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
7
Dino

これはEF6ではなくEFCoreに関連しており、2.1.0.preview1-finalバージョンにバグがあるようです。

  • Dotnet ef--versionで実行しているバージョンを確認してください
  • Microsoft.EntityFrameworkCore.Design2.0.1バージョンにダウングレードします。
5
Peter Húbek

これは問題です #11075 。ツールのバージョンがランタイムのバージョンと一致しません。すべてのMicrosoft.EntityFrameworkCoreパッケージを2.1.0-preview1-finalに更新したことを確認します。

7
bricelam

これはバグだと思います。
EF Core 2.2.4を使用していますが、次の方法で移行をロールバックしようとしています。

migrationBuilder.DropIndex(name: "myIndexName");

これはEFによって自動生成されました。
メソッドシグネチャは、名前が唯一の必須パラメーターであることを示しています(後に2つのオプションのパラメーターがあります)。これを実行すると、次のようになります。

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

しかし、テーブル名に2番目のパラメーターを追加すると、機能します。

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

VS2017バージョン15.7.1のEFCore for .NET Core 2.0.1の場合、プロジェクトファイルからDotNetCliToolReference要素を削除しました。

enter image description here

enter image description here

0
Zin Min