EFCore, 輸出執行的Sql語句到控制檯或者調試窗口

.net core 已經集成的各類日誌功能,使用efcore時,只須要按狀況引入相應的包便可,若是你用的是.net core調試,那麼能夠引入 Microsoft.Extensions.Logging 這類包中的Microsoft.Extensions.Logging.Console 包,如果想在調試窗口看到ef core 執行的語句,能夠 換成 Microsoft.Extensions.Logging.Debug,不過通常來說,由於使用的是.net core,在控制檯上輸出更有意義,能夠在運行時做診斷,要顯示ef core執行的語句須要下面的步驟:
微軟的做法:
1.在dbcontext類上面添加靜態方法:sql

//輸出到debug輸出
public static readonly LoggerFactory LoggerFactory =
       new LoggerFactory(new[] { new DebugLoggerProvider((_, __) => true) });
// 輸出到Console
public static readonly LoggerFactory LoggerFactory =
       new LoggerFactory(new[] { new ConsoleLoggerProvider((_, __) => true,true) });

2.而後再添加類中實例方法重寫ide

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    base.OnConfiguring(optionsBuilder);
    optionsBuilder.UseLoggerFactory(LoggerFactory);
}

這樣就能夠在VS的輸出窗口裏面看到ef core執行時打出的日誌了,包括全部執行的sql語句
以下
ui

附微軟的官方文檔 Docs.Microsoft.net

相關文章
相關標籤/搜索