MVC EF 6虚拟属性自定义选择数据模型

时间:2016-06-15 20:38:28

标签: c# asp.net asp.net-mvc entity-framework

所以我认为我理解正确,但我想确定。我正在使用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个记录。

谢谢

0 个答案:

没有答案