1
ここに2つのクラスの単純な表現があります。Entity Framework 6のコードテーブルで同じテーブル間に一対一の関係を作成する方法
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; }
}
テーブルが作成されるとき、私は各友達に2つの外部キーが必要であると考えていました。しかし、Personテーブルのための別の外部キーがあります。 Person_ID
(これは問題です)
以下は、移行コードの対応する部分です。
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);
? 1つのリストを持つ人のすべての友情にアクセスできる他の方法はありますか? – ozgur
はい、 'FShip'プロパティを見てください。 –