0

我想知道是否有办法在同一类上实现同一实体的相关列表,或者使用迁移来设置具有此属性的模型?

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

    public string Name { get; set; }

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

在我使用迁移(AddMigration)设置数据库的那一刻,我得到以下异常:

添加迁移:无法从“ConsoleApplication3.Person”类型的属性“FamilyMembers”与“ConsoleApplication3.Person”类型的属性“FamilyMembers”建立关系。检查 InversePropertyAttribute 中的值以确保关系定义是唯一的,并从一个导航属性引用到其对应的反向导航属性。

此外,在运行测试应用程序时,将 Person's 添加到 People dbset 时出现相同的错误。

        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 回答