NHibernate 3懒惰的属性和渴望的查询
我正在使用NHibernate 3.0.0和新功能的惰性属性。 但是,在一些查询中,我想急切地加载属性,我希望查询导致非代理实体实例。 我也更喜欢使用LINQ提供程序或QueryOver。 所以我的两个问题是:
干杯
对于问题1 :答案是否定的,如http://ayende.com/blog/4377/nhibernate-new-feature-lazy-properties目前仅在HQL中支持的那样,“获取所有属性”。
我记得在NH Google讨论中看到过,我无法找到该主题。 如果今天能找到答案,我会更新答案。 但就目前的3.1版本而言,它仅在HQL中有效。
对于问题2 :我不知道是否有办法避免这种情况,我通常将它们转换为DTO,并在使用WCF时序列化DTO,而不是NH Poco。 莱昂纳多的链接看起来很有趣,并可能有所帮助。
你可以使用这个http://davybrion.com/blog/2009/03/must-everything-be-virtual-with-nhibernate/来禁用你的类的延迟加载(没有代理)
你可以使用这个http://nhibernate.info/doc/nh/en/index.html#querycriteria-dynamicfetching来加载你的属性
或者你可以试试这个http://www.timvasil.com/blog14/post/2008/02/WCF-serialization-with-NHibernate.aspx并仍然使用代理。