1
我試圖讓NHibernate(3.3.1)加載一個遞歸的父/子類別關係。NHibernate'Category'Child/Parent mapping(XML)
public class Category
{
public virtual int Id { get; set; }
public virtual bool IsActive { get; set; }
public virtual string Name { get; set; }
public virtual Category Parent { get; set; }
public virtual IList<Category> Children { get; set; }
public Category()
{
Children = new List<Category>();
}
public virtual int GetChildCount()
{
return Children.Count;
}
}
我的XML映射...
<class name="nHibernatePOC.Domain.Category, nHibernatePOC" lazy="true">
<id name="Id" column="CategoryId">
<generator class="identity" />
</id>
<property name="Name" column="Name" />
<property name="IsActive" column="IsActive" />
<many-to-one name="Parent" class="nHibernatePOC.Domain.Category" column="ParentCategoryId" />
<bag lazy="true" name="Children">
<key column="ParentCategoryId" />
<one-to-many class="nHibernatePOC.Domain.Category" />
<loader query-ref="GetCategoryByParentId"/>
</bag>
</class>
我的問題是,當我嘗試訪問Children.Count
我得到一個NullReferenceException
因爲Parent
可以爲空。
孩子不應該爲空,因爲如果沒有找到孩子,它將被初始化爲一個空集合。可能'
2013-05-14 08:00:33
你可以顯示保存類別的代碼嗎?另外,當你有一個反向引用(父屬性)時,你應該將該集合標記爲反向,以便不插入parentId – Firo 2013-05-14 11:22:18