NHibernate映射有很多列

时间:2013-12-06 18:12:15

标签: nhibernate

我遇到了映射有很多关系的麻烦。 我的关系表看起来像

Person_Id - Connected_Person_Id - Relation_Type

1                        2                            1
3                        1                            2

我有person实体,其中包含与关系表相关的PersonConnection列表 问题是我希望在关系中映射时,如果是person_id或connected_person_id,在这种情况下,对于id为1的人,它将映射两行。

我想插入相反的一行,但似乎浪费了记忆。 或者我可以操作类中的数据而不是映射中的数据。

任何帮助/建议将不胜感激 感谢

1 个答案:

答案 0 :(得分:0)

迟早你需要知道哪个人发起了连接。您可以在评论或地图2集合中添加Rippo建议的2行,并相应地命名

// simple sample showing the idea
class Person
{
    public virtual int Id { get; private set; }
    public virtual IEnumerable<Person> ConnectedPersons { get; private set; }
    public virtual IEnumerable<Person> PersonsConnectingToMe { get; private set; }
    public virtual IEnumerable<Person> AllConnectedPersons { get { return ConnectedPersons.Concat(PersonsConnectingToMe); } }

    // Add Remove from collections here
}