0
我有一个这样的接口:NHibernate的返回ID会话之外,而不是通过属性
public interface ICoreType {
int TypeID {get;}
}
和实现它像这样的NHibernate的类:
public class DueDateType : ICoreType {
public virtual int DueDateTypeID {get;set;}
...
public virtual int TypeID { get{ return this.DueDateTypeID; } }
}
这里是我的映射:
<class name="DueDateType" table="tdfDueDateType" lazy="true" >
<cache usage="read-write" include="all"/>
<id name="DueDateTypeID" column="DueDateTypeID" >
<generator class="identity"/>
</id>
...
</class>
当我从NHibernate中获取对象的实例,然后将它返回到范围外在创建的活动会话中,我可以获取DueDateTypeID值,但访问TypeID会引发LazyInitializationException。 TypeID没有映射,因为我只是想让它返回任何DueDateTypeID的值。
在我的映射中标记class lazy =“false”会清除问题。从我读过的内容来看,这是因为没有为非惰性映射类生成代理。
我想在这种情况下使用NHibernate的延迟加载功能;我需要实现IInterceptor还是一些这样的,为了让NHibernate以不同的方式处理这个属性?