如何从linq查询中查看生成的sql

时间:2011-05-31 16:28:30

标签: sql linq

只是尝试获取由linq查询生成的sql。

7 个答案:

答案 0 :(得分:22)

使用Linq2Sql

dc.GetCommand(query).CommandText

请参阅http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx了解详情。

但我通常使用LinqPad

答案 1 :(得分:16)

有3种方法可以做到。

1.您可以使用LINQPad.It是免费的http://www.linqpad.net/

2.您可以在Sql Server中使用SQL Server Profiler(工具 - > SQL Server Profiler)

3.您可以使用Visual Studio Debugger生成T-Sql。(使用任何Visual Studio版本)

我写了一篇关于此支票的博文How to Convert Linq Entity Query into T-SQL ?

答案 2 :(得分:6)

如果您使用SQL Server作为数据库,请使用SQL Profiler

答案 3 :(得分:3)

答案 4 :(得分:2)

另一种方式

来自MSDN文章How to: Display Generated SQL (LINQ to SQL)

DataContext.Log属性设置为Console.Out,您将在控制台中看到它

答案 5 :(得分:0)

我建议的最简单方法是使用Database Log。在初始化Log之后放置DataContext,您将能够在Visual Studio output窗口中跟踪EF所做的任何事情。

  DataContext db = new DataContext();
  db.Database.Log = generatedSQL =>
   {
      Debug.WriteLine(generatedSQL);
   };

答案 6 :(得分:0)

您可以在Visual Studio中使用 诊断工具 来查看生成的查询。

要启用此功能,请转到右上角,在那里您可以看到快速搜索并输入诊断工具。

在结果中,单击适当的选项,然后在下面查看生成的查询。