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類上面添加靜態方法:

//輸出到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.然后再添加類中實例方法重寫

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

這樣就可以在VS的輸出窗口里面看到ef core執行時打出的日志了,包括所有執行的sql語句
如下

附微軟的官方文檔 Docs.Microsoft


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM