質問: 以前は、IDesignTimeDbContextFactoryを実装して、マイグレーションを実行する必要がありました。たとえば、PM> Add-Migration Initial PM> Update-Database そうでない場合、コンソールはエラーを投げて、ここに私を導いた: https : //docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext#use-idesigntimedbcontextfactory 。 だから私はそれが示唆したことをし、移行を実行している。その後、私は新しいプロジェクトを作成し、IDesignTimeDbContextFactoryを実装する必要はありませんでした。とにかく移行はうまくいった。これはどのように可能ですか?すべてのプロジェクトで同じ.NET Coreバージョン(2.0)。 私たちは常にIDesignTimeDbContextFactoryを作成する必要がありますか、それともそれは特定の状況にすぎませんか? ありがとう!
回答: さて、ここで説明します:あなたのDbContextにデフォルトのコンストラクタがあるか、ASP.NET Core 2.0プロジェクトテンプレートで確立されたProgram.BuildWebHost()パターンを使用している場合、通常はIDesignTimeDbContextFactory実装は必要ありません。 2.0.0-preview1ではProgram.BuildWebHost()は使用されておらず、デザイン時のファクトリが必要でした。 詳しくは、このスレッドをご覧ください : https : //github.com/aspnet/EntityFrameworkCore/issues/9033