アプリケーションの開始時にEntity Frameworkコアを使用してデータベースの移行を実行する

asp.net-core asp.net-core-mvc entity-framework-core migration

質問

アプリケーションの起動時にEntity Framework Coreを使用してデータベースの移行を実行するようにStartUp.csまたはproject.jsonを構成することは可能ですか?

今私はこの作業を行うミドルウェアを持っていますが、データベースはそれぞれのリクエストを受け取ったかどうかチェックされているため、パフォーマンスに悪影響を与えるようです。

public class EntityFrameworkUpdateDatabaseMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ApplicationDbContext _dbContext;

    public EntityFrameworkUpdateDatabaseMiddleware(RequestDelegate next, ApplicationDbContext dbContext)
    {
        _next = next;
        _dbContext = dbContext;
    }

    public async Task Invoke(HttpContext context)
    {
        await _dbContext.Database.MigrateAsync();
        await _next.Invoke(context);
    }
}

受け入れられた回答

Startup.cs configメソッドでこれを行うことができます。最も簡単な方法は次のようなものです:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>();

    // add other services        
}

public void Configure(IApplicationBuilder app, ApplicationDbContext db)
{
    db.Database.Migrate();

    // configure other services
}


Related

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