从编译的linq查询中获取生成的SQL

本文关键字:获取 SQL 查询 编译 linq | 更新日期: 2023-09-27 17:49:41

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

从编译的linq查询中获取生成的SQL

您可以:

  1. 使用上下文的log属性将生成的查询重定向到Visual Studio的输出窗口。链接
  2. 或者使用LINQ to SQL调试可视化器。链接

使用LinqPad:

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

谢谢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