c# - 抑制 EF 核心 3.0.x 初始化消息

标签 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);
}

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

info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 3.0.0-preview4.19176.6 initialized

有没有办法过滤掉这条特定的消息?因为我做了很多查询,所以它只会弄乱我的控制台调试窗口..

最佳答案

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

相关消息的 EventIdCoreEventId.ContextInitialized。然后使用 Ignore 抑制它:

optionsBuilder.ConfigureWarnings(warnings => warnings
    .Ignore(CoreEventId.ContextInitialized));

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

关于c# - 抑制 EF 核心 3.0.x 初始化消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419481/

相关文章:

C# HttpWebRequest 获取页面总大小

c# - 重试命令/连接超时是否安全?

C# 使用 Substring,我如何提取这个字符串?

c# - 'FromSql' 操作的结果中不存在所需的列,[NotMapped] 没有帮助

c# - EFCore 在一对一关系上生成的列名无效

json - .Net Core 3 和 EF Core 3 包含问题 (JsonException)

c# - ASP.NET 的编码性能增强

c# - Azure Functions .NET Core 中的 EF Core 2.0 连接字符串

c# - EF7 beta6 : Error saving multiple entities

c# - IAsyncEnumerable 的早期处置需要永远进行