在ASP.NET-Core 3.1中,如果您想要在迁移时自动发布更改,您需要在Startup.cs中配置自动迁移。但是,有时即使正确配置了自动迁移,仍然无法正常工作。这个问题经常出现在ASP.NET-Core 3.1中。
我们可以通过手动运行迁移命令来解决此问题。具体实现步骤如下:
1.在Package Manager Console中运行以下命令:
Add-Migration YourMigrationName -Context YourDbContext -OutputDir Migrations
其中,YourMigrationName是您为此迁移命名的名称,YourDbContext是您要对其运行迁移的DbContext名称。
2.运行以下命令以将您的迁移应用于数据库:
Update-Database -Context YourDbContext
其中,YourDbContext是您要对其运行迁移的DbContext名称。
此时,您可能会遇到一个问题,即在应用了迁移之后,迁移记录仍然不会自动发布。要解决此问题,请运行以下命令:
dotnet ef database update
或者,您可以在Program.cs文件中手动编写代码。具体实现请参考以下示例:
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService(); //YourDbContext是您要运行迁移的DbContext名称
context.Database.Migrate();
}
catch (Exception ex)
{
var logger = services.GetRequiredService>();
logger.LogError(ex, "An error occurred while migrating the database.");
}
}
host.Run();
}
使用此方法后,您应该能够在ASP.NET-Core 3.1中自动发布迁