You cannot use DotNetCliToolReference on a production.
But you can do it in two ways.
By resolving DbContext service and calling Database.Migrate()
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
{
serviceScope.ServiceProvider.GetService<DatabaseApplicationContext>()
.Database.Migrate();
}
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
Or directly by calling Database.Migrate() in DbContext class
protected DatabaseApplicationContext()
{
Database.Migrate();
}
public DatabaseApplicationContext(DbContextOptions options) : base(options)
{
Database.Migrate();
}
I would recommend first option because migration is done only at application startup. But the second one will be called when DbContext is created (most likely at every request, if you keep default DbContext scope - as a Scoped service)