Linq to SQL:如何将最终查询保存到日志文件?
我正在关注一个具有大量LINQ到SQL查询的应用程序。这基本上就是带有MVC的SilverLight应用程序。一些数据加载需要相当长的时间。我想知道在SQL server上触发的确切查询。有没有办法将生成的T-SQL语句存储到某种日志文件中Linq to SQL:如何将最终查询保存到日志文件?,linq,entity-framework,linq-to-sql,logging,Linq,Entity Framework,Linq To Sql,Logging,我正在关注一个具有大量LINQ到SQL查询的应用程序。这基本上就是带有MVC的SilverLight应用程序。一些数据加载需要相当长的时间。我想知道在SQL server上触发的确切查询。有没有办法将生成的T-SQL语句存储到某种日志文件中 还请建议一些其他可能的方法。LINQ to SQL DataContext具有一个属性,该属性包含对TextWriter的引用,所有生成的SQL查询的文本都将写入该属性。例如,您可以为磁盘文件打开StreamWriter,然后将其分配给datacontext
还请建议一些其他可能的方法。LINQ to SQL DataContext具有一个属性,该属性包含对
TextWriter的引用,所有生成的SQL查询的文本都将写入该属性。例如,您可以为磁盘文件打开StreamWriter
,然后将其分配给datacontext的Log属性。请参见此处以获取一些好的示例:您最好的选择是使用SQL Server探查器。这将把所有查询记录到一个跟踪文件中,您可以在跟踪后加载该文件,以查看查询所用的时间等
看看这个介绍。
确保选择了正确的事件,例如语句已完成
更多参考请参见本帖
+1尽管OP需要一个日志,但SQL Server profiler确实也是一个很好的解决方案,而且不涉及编码,这是事实。我现在正在探索SQL Server探查器。谢谢。通过编码,我可以非常具体地记录特定的查询。对于SQL Server事件探查器,它处理事件并记录所有内容。也许我必须学习过滤等方面的知识@Kangkan-我通常使用sql server profiler和调试器。我把一个breakboint放在我想要跟踪的东西之前,打开配置文件,跨过我想要跟踪的部分,然后再次切换。因为我使用的是sql server express,所以我使用的是AnjLab探查器,而不是MSSorry提供的探查器,所以我对LINQ很幼稚,无法找到log属性。我们使用MVC,但我看不到log属性。“log”是DataContext类的属性。请看这里: