NHibernate 3惰性属性和急切查询

NHibernate 3惰性属性和急切查询,nhibernate,lazy-loading,Nhibernate,Lazy Loading,我正在使用NHibernate 3.0.0和新特性lazy properties。但是,在一些查询中,我希望急切地加载属性,并且希望查询结果是非代理实体实例。我还更喜欢使用LINQ提供程序或QueryOver。因此,我的两个相关问题是: 我知道那是一种渴望 属性可以在HQL中实现 使用“获取所有属性”,但 也可以用同样的方法处理 LINQ提供者还是查询者 如果我执行一个带有“fetchall properties”的HQL查询,结果中的实体确实会被急切地加载,但它们仍然是代理的。有没有办法避免这

我正在使用NHibernate 3.0.0和新特性lazy properties。但是,在一些查询中,我希望急切地加载属性,并且希望查询结果是非代理实体实例。我还更喜欢使用LINQ提供程序或QueryOver。因此,我的两个相关问题是:

  • 我知道那是一种渴望 属性可以在HQL中实现 使用“获取所有属性”,但 也可以用同样的方法处理 LINQ提供者还是查询者
  • 如果我执行一个带有“fetchall properties”的HQL查询,结果中的实体确实会被急切地加载,但它们仍然是代理的。有没有办法避免这种情况
  • 干杯你可以用这个 禁用类的反惰性加载(无代理)
    你可以用这个 要快速加载您的属性
    或者你可以试试这个
    并且仍然使用代理。

    对于问题1:答案是否定的,中描述的“获取所有属性”目前仅在HQL中受支持

    我确实记得在NH谷歌的讨论中看到的某个地方,我找不到线索。如果我今天能找到答案,我会更新答案。但从目前的3.1版本开始,它只在HQL中出现


    对于问题2:我不知道是否有办法避免这种情况,在使用WCF时,我通常将它们转换为DTO并序列化DTO,而不是NH Poco。Leonardo的链接看起来很有趣,可能会有所帮助。

    代理实体的具体问题是什么?例如,使用WCF传输实体将不起作用。获取链接中的属性与关系有关,而不是特定列。例如延迟加载/急切加载“post”的“content”属性。Yhrn正在谈论的是,目前除了HQL之外,其他任何东西都不支持它。你是对的,Phill。我把问题看得太快了,回答错了。谢谢。@Phill我相信你是对的,我的两个问题的答案都是“不”(至少现在,谁知道未来的版本会带来什么)。如果您对此有信心,请随时将您的评论转换为答案,我会接受。@Yhrn-抱歉,伙计,在NHUsers上找不到与询问是否将出现在NH3或未来版本中有关的帖子。但是,我发现,如果将属性包含在投影中,则可以立即获取这些属性。