在應用程序啟動時使用Entity Framework核心運行數據庫遷移

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

是否可以將StartUp.csproject.json配置為在應用程序啟動時使用Entity Framework Core運行數據庫遷移?

現在我有中間件執行此任務,但它似乎對性能產生負面影響,因為正在檢查每個請求收到的數據庫。

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
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow