Linq to SQL:如何将最终查询保存到日志文件中?

时间:2011-09-27 07:05:42

标签: linq entity-framework linq-to-sql logging

我正在寻找一个包含大量LINQ to SQL查询的应用程序。这基本上是带有MVC的SilverLight应用程序。一些数据加载需要相当多的时间。我想知道在SQL服务器上触发的确切查询。有没有办法将生成的T-SQL语句存储到某种日志文件中?

请提供其他一些可能的方法。

2 个答案:

答案 0 :(得分:6)

LINQ to SQL datacontexts有一个属性Log,它包含对TextWriter的引用,其中写入了所有生成的SQL查询的文本。例如,您可以为磁盘文件打开StreamWriter,然后将其分配给datacontext的Log属性。请参阅此处了解一些不错的示例:http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers

答案 1 :(得分:1)

最好的办法是使用SQL Server Profiler。这会将所有查询记录到跟踪文件中,您可以在跟踪后加载以查看查询耗时等等。

查看此介绍。 http://msdn.microsoft.com/en-us/library/ff650699.aspx

确保选择正确的事件,例如声明已完成。

请参阅此文章以获取进一步参考

http://weblogs.asp.net/zeeshanhirani/archive/2008/04/18/how-to-use-profiler-with-linq-to-sql-queries.aspx