所以我认为我理解正确,但我想确定。我正在使用Entity Framework 6,我有一个数据模型person.cs
,我希望将桌面上的人们链接到"合作伙伴" (也在该表上)所以我用
personPartner.cs
public int id {get;set;}
public int personID{get;set;}
public int partnerID{get;set;}
public virtual Person Person { get { return _context.People.Find(PartnerId); } }
然后我把
public virtual ICollection<personPartner> PeoplePartners { get; set; }
person.cs
中的,我得到了我想要的链接和引用。但我意识到,如果你正在寻找原始人(他的身份在personID
personPartner.cs
字段中),这种关系只会找到合作伙伴而不是你正在寻找在合作伙伴处(其ID位于partnerID
的{{1}}字段中)。所以我想,为了将它们两种方式联系起来,我可以将personPartner.cs
改为:
person.cs
这是对的吗?这是最好的方式,这样我就可以将一个人与同一桌子上的其他人联系起来,然后无论你正在看哪一个,原始人还是合作伙伴,都可以将他们拉出来?
我希望这是有道理的。提前谢谢!
修改
所以我更需要的是以下内容:
现在,当我从public virtual ICollection<personPartner> PeoplePartners
{
get
{
return _context.personPartners.Where(x=> x.personID == Id || x.partnerID == ID).Select(x);} }
拨打记录时,我会收到一个person.cs
条目以及来自person
personPartner
的所有personPartner.PersonId == personId
条目财产,EF为我自动做了。但是,我想要的是一种方法,可以调用单个ICollection<personPartner>
记录,并从同一个person.cs
属性中获取personPartner
所有personPartner.PersonId == personId || person.Partner.PartnerId == person.Id
个记录。
谢谢