我遇到了映射有很多关系的麻烦。 我的关系表看起来像
1 2 1
3 1 2
我有person实体,其中包含与关系表相关的PersonConnection列表 问题是我希望在关系中映射时,如果是person_id或connected_person_id,在这种情况下,对于id为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
}