关于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%的,我也不知道,反正我两天内都会结贴。
------其他解决方案--------------------我再试试吧,谢谢各位。