当前位置:  开发笔记 > 编程语言 > 正文

是否可以使用ICriteria从NHibernate查询中获取一个懒惰的IEnumerable?

如何解决《是否可以使用ICriteria从NHibernate查询中获取一个懒惰的IEnumerable?》经验,为你挑选了0个好方法。

我正在使用NHibernate,需要检索和处理多达200万行.理想情况下,我可以处理每一行 - 一次一个 - 没有NHibernate同时加载所有200万内存(因为,你知道,这会伤害).

我更喜欢得到一个IEnumerable,它会为每次读取迭代地调用数据读取器,这样我就可以处理读取的数据 - 然后丢弃它.通过这样做,我节省了大量的内存,并开始更快地处理结果.我还可以通过多线程和/或使用PLinq来提高性能.

这可能与NHibernate的ICriteria有关吗?它返回的所有内容似乎都是IList,并在关闭集合引用之前完全加载.为什么IList而不是IEnumerable?!

我并不是说NHibernate在加载子对象或父对象时使用的传统意义上的"懒惰".我想要一个懒惰的IEnumerable意味着从ICriteria对象获取IEnumerable.ICriteria只有一个List()方法,它将结果加载到ArrayList中.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有