1

是否有任何工具,如 Visual Studio 中的 watch,通过它我可以看到 LINQ 查询在调试期间使用 C# 生成的 sql 查询。

4

3 回答 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

consoleToString()for 查询。

例子:

var query = from emp in Employees select emp;    
Console.WriteLine(query.ToString());
于 2013-09-02T05:36:42.313 回答
0

除了使用 之外context.log,还有其他一些方法可以获取 sql 查询。

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

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

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

于 2013-09-02T06:38:54.647 回答