繁体   English   中英

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

[英]how to see generated sql from a linq query

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

使用 Linq2Sql

dc.GetCommand(query).CommandText

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx

但我通常使用LinqPad

有 3 种方法可以做到这一点。

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

2.您可以在 Sql 服务器内使用 SQL Server Profiler (Tools --> SQL Server Profiler)

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

如果您使用 SQL 服务器作为数据库,请使用SQL Profiler

另一种方式

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

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

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

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

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

要启用此功能,请在右上角 go 看到快速搜索和键入诊断工具。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM