Is it possible to configure StartUp.cs
or project.json
to run database migrations using Entity Framework Core on application start?
Now I have middleware that do this task, but it seems to make negative influence on performance because database is being checked each request received.
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);
}
}
You can do this in the config methods in your Startup.cs
. The simplest way is like this:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>();
// add other services
}
public void Configure(IApplicationBuilder app, ApplicationDbContext db)
{
db.Database.Migrate();
// configure other services
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With