读书人

关于Linq延迟加载和分页解决办法

发布时间: 2013-01-26 13:47:04 作者: rapoo

关于Linq延迟加载和分页
使用LInq做了一个分页,是通过显示层调用业务层完成的,但是业务层并没有做分页的函数,代码直接这样写:
IEnumble<IBLLClass> result = BLLQuery.select().skip(i*pageSize).take(pageSize);
BLLQuery.select就是调用 context的select方法。
请问这种方式查询会不会查出所有的数据再分页?
[解决办法]
围观你的结贴率
[解决办法]
放心不会。
[解决办法]
额,我弄错了,确实不会
[解决办法]
你可以看下生成的SQL
[解决办法]

引用:
那如果这样呢?
IEnumble<IBLLClass> result = BLLQuery.select();
IEnumerble<IBLLClass> pageResult=result.skit().take();
result中是查出所有数据,pageResult是分页过的数据,我没办法再调整结构,很担心数据会一次查出放到result中,再在pageResult中分页会影……

都不会,只有ToList、ToArray等,还有First、Count等会造成立即执行,即先查出所有数据
[解决办法]
skip(i*pageSize).take(pageSize);

不会加载所有数据

读书人网 >.NET

热点推荐