我有一个相当深的对象图(5-6节点),当我遍历它的一部分NHProf告诉我我有一个“选择N + 1”的问题(我做)。防止流利NHibernate的选择n + 1
这两种方案我所知道的是
- 渴望负载孩子
- 掰开我的对象图(和贪婪加载)
我真的不希望做任何(虽然我可能随着它的增长,将图分开)
现在......
是否有可能告诉NHibernate(使用FluentNHibernate)每当我尝试访问子进程时,一次加载它们,而不是select-n + 1-ing,因为我迭代了它们?
我还得到了“无限结果集”,这大概是同样的问题(或者说,如果可能,将通过上述解决方案来解决)。
每个孩子集合(在整个图中)将只有大约20个成员,但20^5是很多,所以我不想急于加载一切,当我得到的根,但只是得到所有的儿童收集,只要我靠近它。
编辑:一个事后....如果我想介绍分页,当我想要呈现儿童?我是否需要在这里打破我的对象图,还是有一些潜行我可以用来解决所有这些问题?
”这听起来对你来说,你想追求的是使用你的域模型的方法,而不是创建一个特定的nhibernate查询来处理这种情况。“肯定。我想要的最后一件事是具体的查询。我检查了这些东西,ta – 2009-02-24 13:15:12