2011-03-07 44 views
3

我想在我的应用程序中显示当前请求(作为调试信息)的每个页面上所有执行的linq to sql查询(执行时间会很好)的列表。每个请求显示所有linq sql查询

有人知道该怎么做,也许有人已经建立了一个类来做到这一点?

谢谢!

+0

你不能只使用SQL事件探查器吗? – 2011-03-07 17:58:58

+0

不,因为我想在活动服务器上显示这些信息(仅限管理员)。而且我无法访问活动服务器上的sql服务器。 – Marc 2011-03-08 15:38:17

回答

4

DataContext支持通过Log property进行日志记录。只需附加一个TextWriter的实例,您就可以看到所有生成的语句。像这样:

var dc = new DataContext(); 
dc.Log = Console.Out; 

这会将所有语句记录到控制台窗口。

我强烈推荐Damien Guard的LINQ to SQL log to debug window, file, memory or multiple writers。他记录文件的不同例子,控制台等等。

另一种选择是使用Ayende的Linq 2 Sql profiler。我自己并没有使用它,但我每天都使用NHProf,而且我对它感到满意。

+0

太棒了 - 那正是我想知道的!非常感谢! – Marc 2011-03-08 15:36:37