简体   繁体   English

在 asp.net 核心 6 应用程序的启动时运行 EF 迁移

[英]Run EF migrations on Startup in asp.net core 6 application

How can I run ef migrations on startup in asp.net 6 application.如何在 asp.net 6 应用程序中启动时运行 ef 迁移。

This is my Program.cs这是我的 Program.cs

var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
var serverVersion = new MySqlServerVersion(new Version(8, 0, 23));
builder.Services.AddDbContext<MyContext>(x => x.UseMySql(connectionString, serverVersion)
            .LogTo(Console.WriteLine, LogLevel.Information)
            .EnableSensitiveDataLogging()
            .EnableDetailedErrors());

How can I execute MyContext.Database.Migrate() here?如何在这里执行 MyContext.Database.Migrate() ?

Try below:试试下面:

var app = builder.Build();

// omitted

using (var scope = app.Services.CreateScope())
{
    var services = scope.ServiceProvider;

    var context = services.GetRequiredService<MyContext>();    
    context.Database.Migrate();
}

// omitted

app.Run();

Just add following lines in Program.cs只需在 Program.cs 中添加以下行

await using var scope = app.Services.CreateAsyncScope();
using var db = scope.ServiceProvider.GetService<DataContext>();
await db.Database.MigrateAsync();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 EF Code First迁移替代ASP.NET Core应用程序 - EF Code First migrations alternative for ASP.NET Core application 在 ASP.Net Core 应用程序启动期间运行异步代码 - Run async code during startup in a ASP.Net Core application 在 Mac M1 机器上 - 无法在 Asp.Net Core 3.1 中运行 EF 核心迁移添加、更新 - On Mac M1 machine - Not able to run EF core Migrations Add ,Update in Asp.Net Core 3.1 EF 核心在 ASP.net 核心多层架构中添加迁移 - EF core add migrations in ASP.net core multilayered architecture ASP.NET 核心 (3.1) 与 EF 核心迁移和 IHttpContextAccessor - ASP.NET Core (3.1) with EF Core Migrations and IHttpContextAccessor 在ASP.NET Core应用中注入EF上下文并使用迁移 - Injecting an EF Context in ASP.NET Core app and using migrations ASP.NET Core 中的应用程序启动代码 - Application startup code in ASP.NET Core 如何使用 EF Core 代码优先迁移为 ASP.NET Core MVC 配置 N 层架构 - How to configure N-tier architecture for ASP.NET Core MVC with EF Core code first migrations EF6 Enable-Migrations在ASP.NET Core(.NET Framework)中不起作用 - EF6 Enable-Migrations not working in ASP.NET Core (.NET Framework) 将应用程序启动逻辑放在ASP.NET Core中的位置 - Where to put application startup logic in ASP.NET Core
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM