我的Object1类型的对象包含List Children1属性。 我很想得到没有孩子的这些物品。
看起来像detachedCriteria.SetFetchMode(“Children1”,FetchMode.Lazy)应该是东西, 但显然它不是:( 我尝试使用(新的SessionScope())获取数据并将null设置为.Children1,但它没有成功(数据已经被提取)。
任何想法都会受到赞赏。
答案 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。否则请提供更多代码和映射。