【发布时间】:2017-09-13 00:16:14
【问题描述】:
我知道IQueryable 具有在服务器上运行过滤器的优势,而不是像IEnumerable 这样将所有记录加载到内存中,但是这在代码中到底是什么样的,例如,如果我有这个代码:
var data = context.Books.Where(x => x.Id > 930);
如果我有 1000 条记录,那么它只会加载 70 条记录,为了遍历它们,我将 data 转换为 List:
var list = data.ToList(); //has only 70 records
但是如果IEnumerable必须首先通过IQueryable,则加载所有记录的情况是什么?
即获取上述示例的IEnumerable 版本:
var eData = context.Books.Where(x => x.Id > 930).ToList();
它们不一样吗?最后的代码无非就是将上面两行代码结合起来?
【问题讨论】:
标签: c# linq ienumerable iqueryable