在Visual Studio中查看LINQ执行的SQL的方法?

l15*_*15a 8 c# sql t-sql visual-studio-2010 linq-to-sql

这个问题已经有了答案:
查看linq-to-sql生成 3个答案的sql

我想知道是否有办法在运行LINQ to SQL查询时看到在Visual Studio 2010 Ultimate中针对数据库执行的T-SQL.

SLa*_*aks 22

如果您有Visual Studio Ultimate,则可以在调试时查看应用程序在IntelliTrace窗口中运行的每个SQL查询.

  • 我确实在那个窗口看到了查询,但是当我点击获取更多信息时,我得到一个窗口,上面写着" - 数据可能被截断,可能不代表在服务器上运行的查询".警告是正确的,因为该窗口中的查询只有存储过程的名称,而且没有任何我认为对调试有用的信息. (2认同)

Mr.*_* TA 10

您可以使用SQL Server Profiler执行此操作.

  • 没错,但我怀疑有一个IT问题只有一个解决方案. (6认同)

And*_*mar 5

您可以使用DataContext 的Log属性

db.Log = Console.Out;
var custQuery =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach(Customer custObj in custQuery)
    Console.WriteLine(custObj.CustomerID);
Run Code Online (Sandbox Code Playgroud)

  • “ LINQ查询”是模棱两可的。他可能正在使用NHibernate IQueryable适配器,但更像是LINQ to SQL或Entity Framework。希望OP会澄清,我们会确定的:) (2认同)

wal*_*her 5

你基本上有两个选择:

1.)使用分析器,AnjLab免费提供一个http://anjlab.com/en/projects/opensource/sqlprofiler

2.)使用LinqPad(再次免费解决方案)http://www.linqpad.net/

你真的不需要Ultimate VS或任何有人付钱的东西......