Записать EF sql запрос в .NetCore 3 - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над проектом. net core 3, для целей отладки я хочу записать сгенерированный SQL из DbContext.SaveChanges () в консоль отладки. Итак, я определил это свойство:

public readonly static ILoggerFactory _loggerFactory = LoggerFactory.Create(builder => 
{
    builder.AddFilter("DbLoggerCategory.Database.Command.Name", LogLevel.Debug)
    .ClearProviders()
    .AddDebug()
    .AddEventLog();
});

Затем я связал его с DbContext в методе OnConfiguring

/// <summary>
/// Ties loggerFactory to dbContext
/// </summary>
protected virtual void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseLoggerFactory(_loggerFactory)
        .EnableSensitiveDataLogging()
        .UseSqlServer(ConnectionString);
}

И я также вызвал OnCofiguring в конструкторе класса

public Db(DbContext dbContext)
{
    this.dbContext = dbContext;

    DbContextOptionsBuilder optionsBuilder = new DbContextOptionsBuilder();

    OnConfiguring(optionsBuilder);
}

Теперь я почти уверен, что делаю какую-то ошибку, потому что не вижу вывод SQL во время отладки.

This is what I see in debug console

Я использовал эту старую статью в качестве ссылки https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/october/data-points-logging-sql-and-change-tracking-events-in-ef-core

...