0

同じクラスで同じエンティティの関連リストを作成する方法があるかどうか、または移行を使用してこの属性を含むモデルを設定する方法があるかどうかを知りたいですか?

public class Person
{
    [Key]
    public Guid Id { get; set; }

    public string Name { get; set; }

    [InverseProperty("FamilyMembers")]
    public List<Person> FamilyMembers { get; set; }
}

移行(AddMigration)を使用してデータベースをセットアップしているときに、次の例外が発生します。

Add-Migration:タイプ「ConsoleApplication3.Person」のプロパティ「FamilyMembers」からタイプ「ConsoleApplication3.Person」のプロパティ「FamilyMembers」への関係を確立できません。InversePropertyAttributeの値をチェックして、関係定義が一意であり、1つのナビゲーションプロパティから対応する逆ナビゲーションプロパティへの参照であることを確認します。

また、テストアプリの実行時にPersonをPeopledbsetに追加すると同じエラーが発生します。

        var p1 = new Person();
        p1.Id = Guid.NewGuid();
        p1.Name = "p1";

        var p2 = new Person();
        p2.Id = Guid.NewGuid();
        p2.Name = "p2";

        var c = new TestContext();
        c.People.Add(p1);

一意ではなく、同じナビゲーションプロパティを参照する別の属性はありますか?

4

1 に答える 1

0

簡単な答えはノーです。リレーションの両端には、独自のナビゲーションプロパティが必要です。

于 2011-11-15T09:20:31.037 に答える