EF Core 查看生成 SQL 有三类方法:全局日志监听(如 LogTo,适合开发调试)、单次查询提取(ToQueryString,精准无副作用,仅限查询)、数据库级抓包(如 SQL Server Profiler,验证真实执行环境)。

EF Core 查看生成的 SQL,核心就三类方法:全局日志监听、单次查询提取、数据库级抓包。选哪种取决于你当前要解决的问题——是排查整体性能、验证某条 LINQ 是否如预期,还是定位某个慢查询。
全局日志监听(适合开发调试阶段)
这是最常用的方式,能实时看到所有数据库命令执行过程。EF Core 5.0+ 推荐用 LogTo,简洁且灵活:
- 在 DbContext 的
OnConfiguring方法里加一行:optionsBuilder.LogTo(Console.WriteLine); - 如果只想看实际执行的 SQL(过滤掉连接、事务等干扰信息),加个判断:
optionsBuilder.LogTo(msg => { if (msg.Contains("CommandExecuting")) Console.WriteLine(msg); }); - 注意:需安装 NuGet 包 Microsoft.Extensions.Logging.Console,否则控制台不输出
单次查询提取 SQL(精准、无副作用)
适用于想确认某段 IQueryable 语句会生成什么 SQL,又不想真正执行它:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~