【发布时间】:2013-02-12 21:29:04
【问题描述】:
我是 .NET 的新手,我想知道 linq 是如何工作的,因为您可以一个接一个地应用许多 linq 查询,但在它们用于传输信息或转换之前,它们都不会真正执行列出等。
有两种重要的方法可以获取 linq 查询,使用 IQueryable<T>,它直接在 Sql 上应用 where 过滤器,以及 IEnumerable,它获取所有记录,然后在内存中使用它们。但是,让我们看一下这段代码:
//Linq dynamic library
IQueryable<Table> myResult = db.Categories
.Where(a => a.Name.Contains(StringName))
.OrderBy("Name")
.Skip(0)
.Take(10);
if (myResult != null)
{
return myResult.AsEnumerable();
}
else
{ return null; }
Depsite 我正在使用 Linq 动态库,此查询的直接结果是在 IQueryable<T> 上获取,如果查询最终返回为 IEnumerable,那么查询是否真的在 sql 上过滤?还是在内存中?
【问题讨论】:
-
对不起,如何查看日志?
标签: c# performance linq