Hier ist eine einfache Darstellung der beiden Klassen.Wie erstellt man eine Eins-zu-Eins-Beziehung zwischen derselben Tabelle in Entity Framework 6 Code zuerst?
public class Person
{
[Key]
public int ID {get; set;}
public virtual ICollection<Friendship> FShip{ get; set; }
}
public class Friendship
{
[Key]
public int ID { get; set; }
[ForeignKey("Friend1ID")]
public virtual Person Friend1{ get; set; }
public int Friend1ID { get; set; }
[ForeignKey("Friend2ID")]
public virtual Person Friend2{ get; set; }
public int Friend2ID{ get; set; }
public double FriendshipScrore{ get; set; }
}
Wenn die Tabelle erstellt wird, erwartete ich zwei Fremdschlüssel für jeden Freund. Aber es gibt einen anderen Fremdschlüssel für die Personentabelle. Person_ID
(das ist das Problem)
Unten ist der entsprechende Teil in Migration Code.
ForeignKey("dbo.Persons", t => t.Friend1ID, cascadeDelete: true)
.ForeignKey("dbo.Persons", t => t.Friend2ID, cascadeDelete: true)
.ForeignKey("dbo.Persons", t => t.Person_ID)
.Index(t => t.Friend1ID)
.Index(t => t.Friend2ID)
.Index(t => t.Person_ID);
Dann wird eine Person Objekt zwei Sammlungen von Freundschaften haben? Gibt es einen anderen Weg, der es uns ermöglicht, auf alle Freundschaften einer Person mit einer Liste zuzugreifen? – ozgur
Ja, schauen Sie sich 'FShip' an. –