LINQ查询到visual studio 2010或2012中的sql查询生成器

时间:2013-09-02 05:33:32

标签: c# visual-studio linq-to-sql

在Visual Studio中是否有像watch这样的工具,通过它我可以看到LINQ查询在调试时使用C#生成的SQL查询。

3 个答案:

答案 0 :(得分:3)

如果使用数据上下文的Log property,则会在执行时写出查询。例如:

using (var context = new FooDataContext())
{
    context.Log = Console.Out;
    // Execute a query here
}

我相信 是一种以交互方式在调试器中可视化SQL的方法,但我不记得它。 (Zaheer建议调用ToString完全可能会这样做......或者只是在调试器中检查查询。)

答案 1 :(得分:1)

console ToString()查询。

示例:

var query = from emp in Employees select emp;    
Console.WriteLine(query.ToString());

答案 2 :(得分:0)

除了使用context.log之外,您还可以通过其他方式获取SQL查询。

  1. 使用sql profiler,这是一个免费工具,可以监控针对特定数据库服务器的所有sql查询。通过设置过滤器,您可以从特定应用程序获取针对特定数据库的所有sql查询。但糟糕的是它只显示执行/执行查询。

  2. linq to sql profilter,来自codesmith的工具,可以很好地帮助可视化所有查询,易于跟踪和调试,同时也提供了有关查询优化的好建议。

  3. 虽然出于调试目的,context.log已经足够了。