我试图制作一个join
仅能处理一个模型的正确表,我打算为此表设置CRUD页面,以供以后使用,因此我相信它不能成为原始模型的一部分。
public class Person
{
[Key]
public int PersonID { get; set;}
public string Firstname { get; set;}
public string LastName { get; set;}
public string Birthday { get; set;}
}
现在,我想跟踪人们,他们最好的朋友以及他们最好的朋友的生日。
public class Friends
{
[Key]
public int FriendshipID {get; set;}
[ForeignKey("Person")]
public Person SelectedPerson {get; set;}
public int SelectedPersonID {get; set;}
[ForeignKey("Person")]
public Person Friend {get; set;}
public int FriendID {get; set;}
}
这有一些问题,我不完全知道如何[ForeignKey("xxxx")]
工作,但这似乎会导致错误。一个人可能有多个最好的朋友,所以我必须在friends表中有很多条目SelectedPerson
,为了获得所有最好的朋友,这些表必须是相同的,我觉得如果有一个很好的方法可以得到一个一次列出他们的朋友,而不只是一个单一的朋友,这会有所帮助,但是似乎会导致某种级联删除错误?
我知道在stackoverflow上存在与此问题类似的问题,但是我找不到它连接回到同一表的任何地方,由于EF无法处理相同名称的外键,因此我目前已注释了ForeignKeys。
非常感谢您的帮助/建议,谢谢您的宝贵时间。
您应该使用InverseProperty
in父类定义多个关系
并且不要使用重复的名称ForeignKey
public class Person
{
[Key]
public int PersonID { get; set;}
public string Firstname { get; set;}
public string LastName { get; set;}
public string Birthday { get; set;}
[InverseProperty("SelectedPerson")]
public ICollection<Friends> SelectedPerson { get; set; }
[InverseProperty("Friend")]
public ICollection<Friends> SelectedFriends { get; set; }
}
然后将Friends
类更改为此
public class Friends
{
[Key]
public int FriendshipID {get; set;}
[ForeignKey("SelectedPersonID")]
public Person SelectedPerson {get; set;}
public int SelectedPersonID {get; set;}
[ForeignKey("FriendID")]
public Person Friend {get; set;}
public int FriendID {get; set;}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句