2012-01-13 25 views
0

我有2个HasMany关系的类,比如称为Parent的类有一个Children集合。我希望能够在NHibernate中构建查询,只会返回有孩子的父母。我想这样做,我需要有这种HasMany关系。流利的NHibernate - 避免加载子集合

我想要的是以下 - 当我加载父母,我不希望它的孩子被加载。一种LazyLoading,但没有加载儿童。

任何想法如何做到这一点?

+0

这与懒惰有何不同? – 2012-01-13 14:19:10

回答

3

NHibernate的LazyLoading集合正是你所要求的。集合对象本身被创建,但没有任何子对象被加载。

当JSON方法被调用儿童对象被懒惰地加载。我想避免它。

3个选项浮现在脑海

  1. 投影Parentobject成DTO中,然后系列化
  2. 自定义JSON序列
  3. 分离从会话(Evict())母公司和设置集合在序列化之前为空

我赞成选项1,但选项2 woul d也可以。选项3将是一个黑客,应该避免

+0

代码在ASP.NET MVC应用程序中运行,并将父对象作为JSON返回。当JSON方法被调用时,Children对象被懒惰地加载。我想避免它。 – igorti 2012-01-13 14:45:15

+0

是的,我之前也在考虑使用DTO,我想我会选择这个选项。感谢您的帮助! – igorti 2012-01-16 08:16:28