新しい移行を作成しようとしていますが、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
これはEF6ではなくEFCoreに関連しており、2.1.0.preview1-finalバージョンにバグがあるようです。
- Dotnet ef--versionで実行しているバージョンを確認してください
- Microsoft.EntityFrameworkCore.Design2.0.1バージョンにダウングレードします。
これは問題です #11075 。ツールのバージョンがランタイムのバージョンと一致しません。すべてのMicrosoft.EntityFrameworkCoreパッケージを2.1.0-preview1-finalに更新したことを確認します。
これはバグだと思います。
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");