後,我有一個類DepartmentEntity
,包括一個名爲Company(CompanyEntity)
爲波紋管的特性:不能訪問引用對象的會話關閉
public class DepartmentEntity
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual DepartmentEntity Parent { get; set; }
public virtual CompanyEntity Company { get; set; }
}
public class CompanyEntity
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
}
DepartmentEntity.hbm.xml
波紋管:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="HS.DepartmentEntity, HS" table="DepartmentInfo" lazy="true">
<id name="ID">
<generator class="identity" />
</id>
<property name="Name" not-null="true" />
<many-to-one name="Parent" column="ParentID" class="HS.DepartmentEntity, HS" cascade="none" unique="true" not-found="ignore" lazy="no-proxy" />
<many-to-one name="Company" column="CompanyID" class="HS.CompanyEntity, HS" cascade="none" unique="true" not-found="ignore" lazy="no-proxy" />
</class>
</hibernate-mapping>
CompanyEntity.hbm.xml
波紋管:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="HS.CompanyEntity, HS" table="CompanyInfo" lazy="true">
<id name="ID">
<generator class="identity" />
</id>
<property name="Name" not-null="true" />
</class>
</hibernate-mapping>
我試了下面的代碼:
IList<DepartmentEntity> list;
using(ISession session = GetSession())
{
string hql = "FROM DepartmentEntity as dpe join fetch dpe.Company";
list = session.CreateQuery(hql).List<DepartmentEntity>();
}
會議閉幕後,房地產Company
無法訪問,但如果該列表方法只發現一個記錄,財產Company
可以被訪問,我不知道爲什麼。
通過'我有一個對象',我假設你的意思是'我寫了一個叫''的類。 「訪問」是什麼意思?你的意思是訪問?如果是這樣的話,我假設你在運行時訪問它時遇到了問題,並且你應該得到一個異常,你可以跟蹤它以更好地瞭解發生了什麼問題。你能否向我們展示'DepartmentEntity'類和'Company(CompanyEntity)' - 屬性的相關部分(即使我不知道其他屬性,參數,索引屬性)? –
缺少異常詳情。 –
@Aske B,我更新了代碼,FYI。 –