當我們使用LINQ到SQL,那麼很少有可視化器向我們展示LINQ生成的是什麼SQL,但是當我們通過LINQ查詢對象時,是否有任何方法可以擁有相似的SQL語句。例如如何在查詢對象時查看LINQ生成的SQL語句?
string[] names =
new string[] { "Jon Skeet", "Marc Gravell", "tvanfosson",
"cletus", "Greg Hewgill", "JaredPar" };
var results = from name in names
where name.StartsWith("J")
select name;
我們可以從結果中提取sql嗎?
人建議使用此功能,下面讓SQL ....
public static class MyExtensions
{
public static string ToTraceString<T>(this IQueryable<T> t)
{
string sql = "";
ObjectQuery<T> oqt = t as ObjectQuery<T>;
if (oqt != null)
sql = oqt.ToTraceString();
return sql;
}
}
是真的嗎?如果是的話,你可以告訴我如何將我的結果轉換爲IQueryable,然後致電ToTraceString()方法。謝謝
在你的榜樣,你正在使用LINQ to對象。沒有SQL,沒有提取。你爲什麼要這樣? – 2012-08-05 09:02:53