27

我正在尝试在 SQL Server Profiler (2005) 中查看由 Linq to SQL 生成的 SQL。

除了 linq to sql,我可以看到从任何东西发送到服务器的 sql。

我打赌我需要更改跟踪的事件选择,但不确定还有什么要选择的。

我目前只选择这个:SQL:StmtCompleted - TextData & SPID

我不想使用数据上下文日志记录,也不想使用 SQL Debug Visualizer。我需要使用分析器。

为什么我看不到 LINQ to SQL 查询?

谢谢。

编辑

我添加了 SQL:BatchCompleted 并没有帮助。

编辑 2

我添加了事件 RPC:Completed,它位于事件选择的存储过程类别下。这行得通!

4

4 回答 4

37

您需要 RPC 调用 - 查询作为 exec_sql 执行。

于 2009-04-08T12:52:41.190 回答
2

您是否在 SQL Profiler 中包含了足够多的选项来查看 BatchCompleted 事件?

马克

于 2009-04-08T12:42:49.013 回答
1

数据上下文类中还有一个选项可以在客户端启用日志。启用日志时,可以查看查询。

请参阅此链接:

http://www.davidhayden.com/blog/dave/archive/2007/08/17/DataContextLogLoggingLINQToSQLOutputConsoleDebuggerOutputWindow.aspx

于 2009-04-08T14:36:13.970 回答
0

有同样的问题,上面的解决方案都不适合我。

对我有用的是将 ToList() 枚举器添加到查询中。

前:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    })
                :
                   (from ..
                    select new
                    {
                        ...
                    });

后:

var data = null == id ?
                   (from ...
                    select new
                    {
                        ...
                    }).ToList()
                :
                   (from ..
                    select new
                    {
                        ...
                    }).ToList();

foreach (var obj in data)
{
   xxx = obj.somename; --> now you can see the sql query in Profiler
于 2017-04-26T19:58:09.770 回答