在应用程序启动时使用Entity Framework核心运行数据库迁移

mal*_*owa 5 migration entity-framework-core asp.net-core-mvc asp.net-core

是否可以在应用程序启动时使用Entity Framework Core 配置StartUp.csproject.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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*rad 12

您可以在您的配置方法中执行此操作Startup.cs.最简单的方法是这样的:

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

    // add other services        
}

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

    // configure other services
}
Run Code Online (Sandbox Code Playgroud)