SQL server profiler not showing LINQ To Sql queries

被刻印的时光 ゝ 提交于 2020-01-12 02:50:47

问题


I am trying to view SQL generated by Linq to SQL in the SQL Server Profiler (2005).

I can see the sql sent to the server from anything except for linq to sql.

I'm betting that I need to change event selections for the trace, but not sure what else to select.

I am currently only selecting this: SQL:StmtCompleted - TextData & SPID

I don't want to use data context logging nor the SQL Debug Visualizer. I need to use the profiler.

Why can I not see the LINQ to SQL queries?

Thanks.

EDIT

I added SQL:BatchCompleted and that hasn't helped.

EDIT 2

I added the event RPC:Completed which is found under the Stored Procedures category in event selection. This worked!


回答1:


You need RPC call - the queries are executed as exec_sql.




回答2:


Are you including enough of the options in the SQL Profiler to see the BatchCompleted events, too?

Marc




回答3:


There is also an option in the data context class to enable log in the client side. When log is enabled is possible to see the queries.

See this link:

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




回答4:


Had the same problem and none of the solutions above worked for me.

What worked for me was adding ToList() enumerator to the query.

Before:

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

After:

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


来源:https://stackoverflow.com/questions/729774/sql-server-profiler-not-showing-linq-to-sql-queries

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!