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>