我使用实体框架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,以获得更多的细节,比如解释如何使用索引。但是我不能直接运行跟踪sql。
有什么简单的方法可以执行跟踪sql吗?
1条答案
按热度按时间p4rjhz4m1#
从ef发送到数据库的任何命令都会被记录。要查看从ef6.x生成的查询,请使用
DBContext.Database.Log
财产更多信息:https://docs.microsoft.com/en-us/ef/ef6/fundamentals/logging-and-interception