获取 Entity Framework Core 中 DbContext.SaveChanges 生成的 SQL

Mik*_*ter 13 entity-framework-core

SaveChanges()在 Entity Framework Core 中,是否可以看到在调用方法时将应用的 SQL DbContext

IFi*_*ink 5

EF 核心 5.0+

有一个简单的内置解决方案,将以下函数添加到 DbContext 类中。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.LogTo(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)

这将记录查询和命令。

有关节点详细信息,请参阅此处:简单日志记录


Ass*_*Our 3

您可以使用控制台记录器“EF Core 日志记录自动与 .NET Core 的日志记录机制集成”,您可以在此处阅读: https://www.entityframeworktutorial.net/efcore/logging-in-entityframework-core.aspx

  • 看起来很有希望,但我添加了 Microsoft.Extensions.Logging.Console,与他们所说的相反,ConsoleLoggerProvider 只有一个带有单个参数的重载(我在 .NET Standard 2.1 中运行它,但无法编译)。不知道如何生成 IOptionsMonitor<ConsoleLoggerOptions> 来实例化它。要么事情发生了变化,要么有参考资料,或者他们遗漏了其他东西。可能需要引用 .NET Core 中的某些内容。令人非常沮丧的是,以前在 EF 6 中只需在构造函数中一行即可快速调试,现在却达到了这种复杂程度。 (2认同)