【发布时间】:2012-08-05 17:14:19
【问题描述】:
当我们使用 linq to 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,也没有什么可提取的。你为什么想要那个?
标签: c# linq-to-objects