抑制 EF core 3.0.x 初始化消息

kof*_*fus 3 c# entity-framework-core ef-core-3.0

我有:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
{
  string connectionString = "mydb.db;";
  optionsBuilder
  .UseLoggerFactory(MainWorker.ConsoleLoggerFactory)
  .EnableSensitiveDataLogging(true)
  .UseSqlite(connectionString);
}
Run Code Online (Sandbox Code Playgroud)

每当我访问 DBContext 时,控制台都会显示

信息:Microsoft.EntityFrameworkCore.Infrastruct[10403] Entity Framework Core 3.0.0-preview4.19176.6 已初始化

有没有办法过滤掉这个特定的消息?当我做了很多查询时,它只会让我的控制台调试窗口变得混乱..

Iva*_*oev 6

EF Core 特定的日志消息是通过DbContextOptionsBuilder.ConfigureWarnings方法配置的(是的,这个名称有点误导)。

EventId相关消息的是CoreEventId.ContextInitialized。你可以使用以下方法抑制它Ignore

optionsBuilder.ConfigureWarnings(warnings => warnings
    .Ignore(CoreEventId.ContextInitialized));
Run Code Online (Sandbox Code Playgroud)

当然,它可以与其他optionsBuilder调用链接起来。此外,您可能希望使用 抑制第二个上下文生命周期相关的日志消息CoreEventId.ContextDisposed