有没有办法在LINQ查询发生时观察它们?

时间:2011-01-25 14:39:08

标签: c# .net linq

我最近一直在研究LINQ,并希望了解更多信息,并且正在寻找一种可视化查询的简单方法,以便更详细地了解查询过程中发生的事情。

有没有人知道可以公开使用的任何工具来完成这样的事情?

谢谢,

约什

5 个答案:

答案 0 :(得分:10)

您可能想在Jon Skeet博客的Visual LINQ上阅读这篇文章。 Visual LINQ是一个工具,可以让您直观地观察您的LINQ查询。

您可以直接下载here的文件。

希望这有帮助。

编辑:Scott Gu的博客上还有一篇关于LINQ to SQL Debug Visualizer的文章,可能对您有帮助。

答案 1 :(得分:1)

这取决于你在谈论什么样的LINQ。如果您指的是LINQ-to-Objects,那么WYSIWYG;除了针对某些标准框架库进行优化的一些方法之外(例如Count()上的IEnumerable扩展方法足够聪明,如果目标可枚举实现{{1},则调用Count属性}},没有根据具体情况进行的真正优化。

对于像LINQ-to-SQL这样的东西,你必须使用特定于数据库的监视工具,比如用于MS SQL Server的SQL Server Profiler。

答案 2 :(得分:1)

您还可以在SQL Management Studio中使用SQL事件探查器(快速版中不提供)。您可以看到SQL Server如何处理Linq查询。

答案 3 :(得分:0)

SQL Server Profiler可能是您最好的选择。您可以在执行查询时观察并查看已发生的所有事情的运行日志。它非常易于配置,您可以将其设置为仅捕获您感兴趣的事件。

试试此视频教程:http://sqlserverpedia.com/wiki/Using_SQL_Server_Profiler

答案 4 :(得分:0)

我多次使用的Linq to SQL查询的一个很棒的工具是Linq to SQL Profiler。它不仅可以显示您的查询,还可以帮助您了解如何优化它们以避免诸如N + 1之类的陷阱。