NHibernate:如何在没有子集合的情况下获取对象?

时间:2010-01-13 12:19:14

标签: c# nhibernate fetch fetching-strategy

我的Object1类型的对象包含List Children1属性。 我很想得到没有孩子的这些物品。

看起来像detachedCriteria.SetFetchMode(“Children1”,FetchMode.Lazy)应该是东西, 但显然它不是:( 我尝试使用(新的SessionScope())获取数据并将null设置为.Children1,但它没有成功(数据已经被提取)。

任何想法都会受到赞赏。

4 个答案:

答案 0 :(得分:0)

映射集合时,是否指定不使用延迟加载?此时尝试指定延迟加载。

答案 1 :(得分:0)

我们当前的解决方案遇到了同样的问题,并且在映射中设置Lazy不起作用。我们不得不将default-lazy设置为true,突然之间就可以了。

如果默认情况下所有关系都应该是惰性的,那么这将最有效。

答案 2 :(得分:0)

使用ICriteria API检索实体时,您可以指定(覆盖)必须用于关联的fetchmode:

ICriteria crit = session.CreateCriteria (typeof(MyEntity));
crit.SetFetchMode ("someAssociationPath", FetchMode.Lazy);

答案 3 :(得分:0)

在我看来,你正在使用一对一的映射。在这种情况下,延迟加载将无法按设计工作。如果是这样,请检查this article。否则请提供更多代码和映射。