我正在寻找一种方法来查看我的L2E代码为调试目的而生成的sql是什么。 我读过blogpost by Scott G. on a visualizer for Linq2SQL但我无法让它为L2E工作。
您是否了解从L2E可视化生成的SQL的某种方法?
我使用的是Visual Studio 2008 SP1 Professional。
答案 0 :(得分:7)
Class ObjectQuery有一个ToTraceString()函数。但是,您在LINQ中编写的大多数查询都是作为IQueryable创建的,因此您首先必须将它们转换为ObjectQuery才能使用它。
或者,如果您定义此扩展方法,则可以将其与IQ
一起使用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 :(得分:1)
尝试使用Sql Server Profile(如果安装了Sql Server)。 打开一个新的Trace窗口,在那里您将看到针对Sql Server发出的所有查询。