2012-07-17 145 views
0

只需咨询NHibernate的专家,我知道(并广泛使用)懒加载的集合。nhibernate在课堂上懒惰

但是,迄今为止,我一直无法确定在类级别设置惰性属性的含义。

在我们现有的hbm文件中,它们都具有懒惰设置为false的类节点。例如

<class name="Decision" lazy="false" ...> 

我已经删除了该属性试验(从而默认这是真的),结果是我得到一个InvalidProxyTypeException

我认为这是因为它将所有属性(即引用类型)和集合设置为lazy =“true”,而不管它们是否是数据对象。

所以我的问题是,这个假设是否正确?在NHibernate配置的类节点级别设置lazy =“true”是否将所有引用类型和集合类型默认设置为lazy =“true”?在课堂上还有其他的懒惰=“真实”吗?

如果我上面说的是真的,那么它也意味着它不可能在你的域对象中混合正常属性和数据属性,除非你也将这些属性设置为虚拟,即使它不是必需的。

public virtual FirstName {get; set;} 
public virtual LastName {get; set;} 
public FullName {get{ return FirstName + " " + LastName;}} // InvalidProxyTypeException thrown! 

回答