流利的NHibernate - 避免加载儿童收藏

时间:2012-01-13 14:07:07

标签: nhibernate fluent-nhibernate

我有两个与HasMany关系的类,比如一个名为Parent的类,它有一个Children集合。我希望能够在NHibernate中构建查询,只返回有子项的父项。我想要做到这一点我需要有这个HasMany关系。

我想要的是跟随 - 当我加载父母时,我不希望它的孩子被加载。 LazyLoading的种类,但根本没有装载儿童。

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

NHibernate的LazyLoading系列正是您所要求的。创建了collection-object本身,但没有加载任何子对象。

  

调用JSON方法时,子对象会被懒惰地加载。我想避免它。

想到了3个选项

  1. 将父对象投影到DTO中,然后将其序列化
  2. 自定义JSON序列化
  3. 从会话中分离父级(Evict())并在序列化之前将集合设置为null
  4. 我赞成选项1,但选项2也可以。选项3将是一个黑客,应该避免