Nhibernate 将表映射到父子关系中的自身
在这种情况下,我将表的列映射到同一表的主键。这张桌子看起来像这样Nhibernate 将表映射到父子关系中的自身,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,在这种情况下,我将表的列映射到同一表的主键。这张桌子看起来像这样 ---+-------+--------- ID Name ParentId ---+-------+--------- 1 Parent1 0 2 Child 1 1 3 Child 2 1 4 Parent2 0 5 Child 3 4 我创建了以下模型和Fluent NHibernate映射类 //Model.LocationType.cs public class LocationT
---+-------+---------
ID Name ParentId
---+-------+---------
1 Parent1 0
2 Child 1 1
3 Child 2 1
4 Parent2 0
5 Child 3 4
我创建了以下模型和Fluent NHibernate映射类
//Model.LocationType.cs
public class LocationType
{
public virtual long Id { get; set; }
public virtual string ShortName { get; set; }
public virtual string Description { get; set; }
public virtual IList<LocationType> ParentId { get; set; }
}
编辑1:
我没有使用,而是尝试了
HasMany(x => x.ParentIds).KeyColumn("PARENT_LOC_TYPE_ID");
虽然它有效地解决了我上面提到的铸造问题,但我得到的结果与我所需要的正好相反。
在parent的LocationType对象中,它列出了IList中的所有子对象,因此对于上面的示例,结果将是:
-----+----------+------
ID Name ParentId
-----+----------+------
1 Parent1 IList<Child1, Child2>
2 Child 2 IList<Empty>
3 .... same
4 Parent2 IList<Child3>
5 Child 3 IList<Empty>
-----+----------+------
ID名称ParentId
-----+----------+------
家长
2名儿童2名儿童
3.相同的
4家长2
5名儿童3名儿童
似乎你应该在映射中使用HasMany
而不是引用
似乎你应该在映射中使用HasMany
而不是引用
我这样做了,请查看我编辑的帖子以了解它导致的问题我这样做了,请查看我编辑的帖子以了解它导致的问题你知道吗有没有彻底修好过?我也有同样的问题你有没有彻底解决过?我也有同样的问题
HasMany(x => x.ParentIds).KeyColumn("PARENT_LOC_TYPE_ID");
-----+----------+------
ID Name ParentId
-----+----------+------
1 Parent1 IList<Child1, Child2>
2 Child 2 IList<Empty>
3 .... same
4 Parent2 IList<Child3>
5 Child 3 IList<Empty>