You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在控制台中显示EF Core的__EFMigrationsHistory迁移历史?

解决EF Core调用Migrate()时显示迁移历史信息的问题

要让程序调用ctxMain.Database.Migrate()时在控制台输出迁移历史,核心是为EF Core配置日志输出到控制台——命令行执行dotnet ef database update时默认开启了日志,而自定义程序需要手动配置。

方法一:在上下文的OnConfiguring中配置日志

修改你的MainContext类,在OnConfiguring方法里添加日志配置:

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;

public class MainContext : DbContext
{
    // 你的DbSet及其他实体配置
    
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder
            .UseSqlServer("你的数据库连接字符串") // 替换为实际连接串
            // 输出EF Core信息级日志到控制台,包含迁移相关内容
            .LogTo(Console.WriteLine, LogLevel.Information)
            // 可选:仅过滤迁移相关日志事件,减少冗余输出
            .LogTo(Console.WriteLine, new[] 
            { 
                RelationalEventId.MigrationApplied, 
                RelationalEventId.MigrationSkipped,
                RelationalEventId.MigrationStarting
            });
    }
}

方法二:通过依赖注入配置(适用于ASP.NET Core或使用DI的控制台程序)

如果你的程序使用依赖注入(比如.NET 6+的控制台/ASP.NET Core项目),在服务配置阶段为DbContext添加日志:

// Program.cs 顶级语句示例
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;

var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureServices(services =>
{
    services.AddDbContext<MainContext>(options =>
        options.UseSqlServer("你的数据库连接字符串")
               .LogTo(Console.WriteLine, LogLevel.Information));
});

var host = builder.Build();
// 获取上下文并执行迁移
using var scope = host.Services.CreateScope();
var ctxMain = scope.ServiceProvider.GetRequiredService<MainContext>();
Console.WriteLine("---> Creating database...");
ctxMain.Database.Migrate();
Console.WriteLine("---> Done creating database!");

效果说明

配置完成后,再次运行程序调用Migrate(),控制台会输出类似命令行工具的迁移日志,例如:

Applying migration '20240520123456_InitialCreate'.
Done.

内容的提问来源于stack exchange,提问作者ana mariatonia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:57:46