0

エンティティフレームワークのコードファーストモデルで、型付きエッジを使用してグラフを表現しようとしています。関係を正しく設定する方法を理解するのは非常に困難です。グラフのノードを「アイテム」と呼び、エッジを「関係」と呼んでいます。これが私が持っているものです。

public class Item : Learnable
{
    public Boolean IsBeginningItem { get; set; }
    public virtual List<Relationship> RelationshipsLeft { get; set; }
    public virtual List<Relationship> RelationshipsRight { get; set; }
}

-

public class Relationship : Learnable
{
    public Boolean IsPrerequisiteRelationship { get; set; }
    public virtual RelationshipType RelationshipType { get; set; }

    public int ItemLeftID { get; set; }
    [ForeignKey("ItemLeftID")]
    public virtual Item ItemLeft { get; set; }

    public int ItemRightID { get; set; }
    [ForeignKey("ItemRightID")]
    public virtual Item ItemRight { get; set; }
}

そして、これが私が得ているものです:

ここに画像の説明を入力してください

ItemのRelationshipsRightプロパティをRelationshipのItemLeftプロパティに対応させ、ItemのRelationshipsLeftプロパティをRelationshipのItemRightプロパティに対応させるにはどうすればよいですか?

ああ...そして、これは私が双方向にナビゲートできる有向グラフであると想定されていることを説明する必要があると思います。:)

4

1 に答える 1

0

この属性を使用して[InverseProperty]、ナビゲーションプロパティの正しいペアをバインドできます。

public class Relationship
{
    //...

    public int ItemLeftID { get; set; }
    [ForeignKey("ItemLeftID"), InverseProperty("RelationshipsRight")]
    public virtual Item ItemLeft { get; set; }

    public int ItemRightID { get; set; }
    [ForeignKey("ItemRightID"), InverseProperty("RelationshipsLeft")]
    public virtual Item ItemRight { get; set; }
}
于 2012-11-24T16:29:12.713 に答える