7

是否可以从已编译的 linq 查询中获取生成的 SQL?

4

3 回答 3

9

你可以:

  1. 使用上下文的 log 属性将生成的查询重定向到 Visual Studio 的输出窗口。关联
  2. 或使用 LINQ to SQL 调试可视化工具。关联
于 2011-04-08T10:53:55.510 回答
2

使用LinqPad

或者使用 sql server profiler 来观察查询。我知道您曾经能够在调试中通过查询变量,它会向您显示它将执行的查询,但我不完全确定它是否仍然有效(绝对不是在客户端应用程序上)

于 2011-04-08T10:51:39.770 回答
0

感谢 jfs,但您的选项 #1 中的链接不再好。它没有显示任何相关文章。Chris B 的 MSDN 文章链接帮助了我。

这是我的解决方案,因为我的不是控制台应用程序:

TextWriter tw = new StringWriter();
db.Log = tw;
IQueryable<Customer> custQuery =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

string output = tw.ToString();   
// output variable has the generate SQL now
于 2016-08-04T20:11:07.633 回答