是否可以配置StartUp.cs
或project.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);
}
}
答案 0 :(得分: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
}