我是 .NET 上的新手,我想知道 linq 是如何工作的,因为您可以一个接一个地应用许多 linq 查询,但在它们用于传输信息或转换为列表之前,它们都不会真正执行,等等。
有 2 种重要的方法来获取 linq 查询,通过 using 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上过滤?还是在内存中?