星期二, 3月 11, 2025

[EFCore] LogTo

根據官方文章 Simple Logging 內容,要在 Console 上顯示 Linq to Entity 產生的 TSQL 語法。

只要在 DbContext.OnConfiguring() 內進行 LogTo 設定,語法如下
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        => optionsBuilder.UseSqlServer(連線字串)
        .LogTo(Console.WriteLine , LogLevel.Information);
        // 或
        .LogTo(message => Console.WriteLine(message) , LogLevel.Information);
萬一沒有指定 LogLevel.Infomation 會輸出過多訊息,變得不容易找到 TSQL 語法
info: 2025/3/11 08:41:31.472 RelationalEventId.CommandExecuted[20101] (Microsoft.EntityFrameworkCore.Database.Command) Executed DbCommand (12ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT [p].[BusinessEntityID], [p].[AdditionalContactInfo], [p].[Demographics], [p].[EmailPromotion], [p].[FirstName], [p].[LastName], [p].[MiddleName], [p].[ModifiedDate], [p].[NameStyle], [p].[PersonType], [p].[Suffix], [p].[Title], [p].[rowguid] FROM [Person].[Person] AS [p]
文章內還其他輸出模式、顯示機密資料和篩選資訊相關可以參考。

沒有留言:

張貼留言