在Visual Studio中是否有像watch这样的工具,通过它我可以看到LINQ查询在调试时使用C#生成的SQL查询。
答案 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查询。
使用sql profiler,这是一个免费工具,可以监控针对特定数据库服务器的所有sql查询。通过设置过滤器,您可以从特定应用程序获取针对特定数据库的所有sql查询。但糟糕的是它只显示执行/执行查询。
linq to sql profilter,来自codesmith的工具,可以很好地帮助可视化所有查询,易于跟踪和调试,同时也提供了有关查询优化的好建议。
虽然出于调试目的,context.log
已经足够了。