从已编译的linq查询中生成sql

时间:2011-04-08 10:42:44

标签: c# linq-to-sql compiled-query

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

3 个答案:

答案 0 :(得分:9)

你可以:

  1. 使用上下文的log属性将生成的查询重定向到Visual Studio的输出窗口。 link
  2. 或使用LINQ to SQL Debug Visualizer。 link

答案 1 :(得分:2)

使用LinqPad

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

答案 2 :(得分: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