2009-07-09 44 views

回答

7

Class ObjectQuery有一个ToTraceString()函数。但是,大多数在LINQ中编写的查询都是作为IQueryable创建的,所以您首先必须将它们转换为ObjectQuery才能使用它。

,或者,如果你定义了这个扩展方法,你可以用智商

public static string ToTraceString<T>(this IQueryable<T> expression) 
     {     

      ObjectQuery<T> objectQuery = expression as ObjectQuery<T>;  
      if (objectQuery != null) 
      { 
       return objectQuery.ToTraceString(); 
      } 
      return ""; 

     } 

使用它...

//then you could use it like this 
IQueryable<Record> records = db.Record.Where(r=>r.Value > x); 

string generatedQuery = record.ToTraceString(); 
1

尝试Sql Server的配置文件(如果你有安装了SQL Server)。 打开一个新的跟踪窗口,您将看到针对Sql Server发出的所有查询。