.NETコアエンティティフレームワーク - 移行パス--output-dir

.net .net-core asp.net-core entity-framework entity-framework-core

質問

私は、コマンドを使用して.NET Coreクラスライブラリを使って移行ファイルを作成しましたdotnet ef --startup-project ../Project.Web migrations add Init

別のレイヤー(Webレイヤー)にDBコンテキストを登録し、クラスライブラリを持っているので、スタートアッププロジェクトをProject.Webに設定する必要があります。

最初の移行を作成した後は、次のようになります。

ここに画像の説明を入力

しかし、今、私は、移行フォルダに移動したいProject.Data/MigrationsするProject.Data/Database/Migrations

私はoutput-dirパラメータを使ってみました:

dotnet ef --startup-project ../Project.Web --output-dir Database migrations add Init

しかし、それから私は得ます:

dotnet:認識できないオプション '--output-dir'

スタートアップ (別のプロジェクト、ビジネスレイヤー内)

public static IServiceCollection InjectBusinessContext(this IServiceCollection services, string connectionString)
{
    services.AddEntityFrameworkSqlServer().AddDbContext<ProjectContext>((serviceProvider, options) => options.UseSqlServer(connectionString, b => b.MigrationsAssembly("Database")).UseInternalServiceProvider(serviceProvider));

    return services;
}

コンテキスト (データレイヤー)

public class ProjectContext : DbContext
{
    public ProjectContext(DbContextOptions<ProjectContext> options) : base(options)
    {
    }

    public DbSet<Account> Account { get; set; }
}

受け入れられた回答

それを移動するだけで(オプションでクラスの名前空間を変更することもできます)。新しいマイグレーションは、以前のマイグレーションに従います。 (モデルスナップショットの場合も同様)はい、それはすばらしいことです。 ;)



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ