从LINQ到EF查询获取SQL字符串

3
什么是从EF获取SQL查询的最有效方式?我需要这样做以便运行查询分析并找到其执行计划。
我知道可以将分析器连接到SQL服务器,但这一步骤非常繁琐,对生产率影响很大,几乎足以放弃ORM。
有没有更好、更高效地优化EF查询的方法?
3个回答

4

3

如果你将IQueryable转换为ObjectQuery,就可以使用ToTraceString()方法查看SQL查询。


没有意识到你可以将其转换,真是好信息。但我正在寻找一款可以做到这一点的应用程序。 - Alwyn
@Alwyn - 抱歉,我有一个坏习惯,就是不读完整个问题。 - Björn
不用担心,是我没有表达清楚。给你一个大拇指,回答很好。 - Alwyn

2
有没有更好、更有效的方法来优化 EF 查询?
是的,购买EF ProfilerHuagati Profiler。或者使用EF Provider wrapper进行跟踪。
我知道我可以将分析器连接到 SQL Server,但这一步骤很痛苦,对生产率影响巨大,几乎足以放弃 ORM。
分析器只是其中一部分。还有数据库引擎调整顾问和这些工具是主要的工具集,如果你真的想优化 SQL 查询——但优化你无法控制的 SQL 查询非常困难,有时甚至是不可能的。

如果我没记错的话,LINQPad可以显示实体LINQ查询生成的SQL。 - Matthias Meid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接