关于Linq延迟加载跟分页
关于Linq延迟加载和分页使用LInq做了一个分页,是通过显示层调用业务层完成的,但是业务层并没有做分页的函
关于Linq延迟加载和分页
使用LInq做了一个分页,是通过显示层调用业务层完成的,但是业务层并没有做分页的函数,代码直接这样写:
IEnumble<IBLLClass> result = BLLQuery.select().skip(i*pageSize).take(pageSize);
BLLQuery.select就是调用 context的select方法。
请问这种方式查询会不会查出所有的数据再分页?
[最优解释]
都不会,只有ToList、ToArray等,还有First、Count等会造成立即执行,即先查出所有数据
[其他解释]skip(i*pageSize).take(pageSize);
不会加载所有数据
[其他解释]放心不会。
[其他解释]额,我弄错了,确实不会
[其他解释]你可以看下生成的SQL
[其他解释]围观你的结贴率
[其他解释]是的,用IQueryable<IBLLClass>就不会了
[其他解释]那如果这样呢?
IEnumble<IBLLClass> result = BLLQuery.select();
IEnumerble<IBLLClass> pageResult=result.skit().take();
result中是查出所有数据,pageResult是分页过的数据,我没办法再调整结构,很担心数据会一次查出放到result中,再在pageResult中分页会影响数据的访问速度。
PS:我的结贴率怎么超过100%的,我也不知道,反正我两天内都会结贴。
[其他解释]我再试试吧,谢谢各位。