首页 > 解决方案 > 如何执行实体框架跟踪sql

问题描述

我使用实体框架6,linq来查询mysql。我在调试窗口中跟踪 linq 生成的 sql 字符串,如下所示:

INSERT INTO XXX(ID, Name, ...)
VALUES (:p0, :p1, :p2, NULL, NULL, NULL, NULL, NULL, :p3, :p4, :p5, :p6, :p7, NULL, :p8)
-- p0: 'ff641c20dac54f68a76ee7d30a8c39e1' (Type = String, IsNullable = false, Size = 32)
-- p1: 'M310000157' (Type = String, IsNullable = false, Size = 10)
-- p2: 'FY310000000201812000009' (Type = String, IsNullable = false, Size = 23)
...

现在我想在一些 mysql 客户端中调试这个 sql 以获得更多细节,比如解释如何使用索引。但是我不能直接运行trace sql。

有什么简单的方法可以执行跟踪 sql 吗?

标签: c#mysql.netentity-framework

解决方案


记录从 EF 发送到数据库的任何命令。要查看从 EF 6.x 生成的查询,请使用DBContext.Database.Log属性

更多信息:https ://docs.microsoft.com/en-us/ef/ef6/fundamentals/logging-and-interception


推荐阅读