NHibernate懒惰属性的行为?
问题描述:
我一直试图让NHibernate的进入开发的一个项目,我在我的工作场所工作。NHibernate懒惰属性的行为?
既然我已经把非常重视的表现,我一直在运行现有项目的表与成千上万的记录,它们都含有大量的文本列验证的概念压力测试。
然而,选择这些记录的集合时,select语句需要相当长的时间来执行;显然是由于上述专栏。
,想到的第一个解决方法是设置该属性为懒惰:
<property name="Content" lazy="true"/>
但似乎是由NHibernate的生成的SQL没有区别。 我的问题是,懒惰属性如何在NHibernate中表现?是否有某种类型的限制可能会丢失?我应该采取不同的方法吗?
使用HQL的new Class(column1, column2)
方法有效,但懒惰的性质听起来像一个简单的解决方案。
这也许值得一提的,我使用NHibernate 2.1.2GA与城堡DynamicProxy。
谢谢! 。
答
要使用2.1做懒性质*,试试这个:
http://ayende.com/Blog/archive/2007/08/26/Lazy-Property-Loading-In-NHibernate.aspx
懒惰的特性是在后备箱(3.X)要容易得多,并完全支持:
http://ayende.com/Blog/archive/2010/01/27/nhibernate-new-feature-lazy-properties.aspx
另请参阅: