是否有任何工具,如 Visual Studio 中的 watch,通过它我可以看到 LINQ 查询在调试期间使用 C# 生成的 sql 查询。
问问题
872 次
3 回答
3
如果您使用数据上下文的Log
属性,那将在您执行查询时写出查询。例如:
using (var context = new FooDataContext())
{
context.Log = Console.Out;
// Execute a query here
}
我相信有一种方法可以交互式地在调试器中可视化 SQL,但我不记得了。(Zaheer 的调用建议完全有可能ToString
做到这一点……或者只是在调试器中检查查询。)
于 2013-09-02T05:47:54.263 回答
1
console
ToString()
for 查询。
例子:
var query = from emp in Employees select emp;
Console.WriteLine(query.ToString());
于 2013-09-02T05:36:42.313 回答
0
除了使用 之外context.log
,还有其他一些方法可以获取 sql 查询。
使用 sql profiler,这是一个免费工具,可以监控针对特定数据库服务器的所有 sql 查询。通过设置过滤器,您可以从特定应用程序获取针对特定数据库的所有 sql 查询。但不好的是它只显示你执行/执行的查询。
linq to sql profilter 是 codesmith 的一个工具,可以很好地帮助可视化所有查询,易于跟踪和调试,同时也对查询优化提出了很好的建议。
虽然出于调试目的,但context.log
已经足够了。
于 2013-09-02T06:38:54.647 回答