異なるプロジェクトにあるContextでMigrationを実行する

複数のプロジェクトで構成されたソリューションのうち、Startupプロジェクト以外でef migrationsを実行する場合には以下のようにDbContextを含むプロジェクトでマイグレーションコマンドを実行する必要があります。

SampleSln
  -- StartupProject
  -- RepositoryProject
       -- SomeDbContext

仮に上記のようなプロジェクト構成となっている場合には、以下の通りコマンドを実行します。 (RepositoryProjectのSomeDbContextが参照する接続先はStartupProjectに定義されていることとします。)

$ cd RepositoryProject

# Migrationファイルを作成する
$ dotnet ef migrations add AddHogeTable --context SomeDbContext -v --startup-project ../StartupProject

# Migrationをデータベースへ反映する
$ dotnet ef database update AddHogeTable --context SomeDbContext -v --startup-project ../StartupProject

参考

Migration in different assembly than target assembly not supported · Issue #5900 · aspnet/EntityFrameworkCore

C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers

C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers