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以不同的方式處理這個屬性?