.NET 6 中的数据库自动迁移
Database AutoMigration in .NET 6
我正在重写一个使用 Asp.NET 5 的简单应用程序。但现在我正在为我的应用程序的新版本使用 Asp.NET 6。快速提问:.NET6 中数据库自动迁移(如下面的 .NET5 中)的替代方法是什么,或者在 .NET6 中启动应用程序后我应该使用什么方法进行自动迁移?
.NET5 中的示例:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, PgSqlDbContext context)
{
context.Database.Migrate();
/*
other middlewares
*/
}
.NET6:
var app = builder.Build();
// ???? for auto migration
// other middlewares
这是我从 Microsoft's Docs on 5 to 6 migration 到您的用例的翻译:
var app = builder.Build();
var context = app.Services.GetRequiredService<PgSqlDbContext>();
context.Database.Migrate();
我没有测试这个,所以祈祷吧!
我已经尝试添加这段代码,项目成功运行。
var app = builder.Build();
using (var serviceScope = app.Services.CreateScope())
{
var services = serviceScope.ServiceProvider;
var dbcontext = services.GetRequiredService<PgSqlDbContext>();
var conn = dbcontext.Database.GetConnectionString();
}
//other middlewares
我正在重写一个使用 Asp.NET 5 的简单应用程序。但现在我正在为我的应用程序的新版本使用 Asp.NET 6。快速提问:.NET6 中数据库自动迁移(如下面的 .NET5 中)的替代方法是什么,或者在 .NET6 中启动应用程序后我应该使用什么方法进行自动迁移?
.NET5 中的示例:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, PgSqlDbContext context)
{
context.Database.Migrate();
/*
other middlewares
*/
}
.NET6:
var app = builder.Build();
// ???? for auto migration
// other middlewares
这是我从 Microsoft's Docs on 5 to 6 migration 到您的用例的翻译:
var app = builder.Build();
var context = app.Services.GetRequiredService<PgSqlDbContext>();
context.Database.Migrate();
我没有测试这个,所以祈祷吧!
我已经尝试添加这段代码,项目成功运行。
var app = builder.Build();
using (var serviceScope = app.Services.CreateScope())
{
var services = serviceScope.ServiceProvider;
var dbcontext = services.GetRequiredService<PgSqlDbContext>();
var conn = dbcontext.Database.GetConnectionString();
}
//other middlewares