是否可以在同一个命名属性上使用EF4.2 Code First和Inverse Property Attribute?

时间:2011-11-15 02:53:30

标签: ef-code-first entity-framework-4 many-to-many ef-migrations

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

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'属性   'FamilyMembers'类型'ConsoleApplication3.Person'。检查值   在InversePropertyAttribute中确保关系定义   是唯一的,从一个导航属性引用到它   相应的逆导航属性。

在运行测试应用程序时,我也会在人员数据库集中添加人员相同的错误。

        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);

是否有另一个属性不唯一且引用相同的导航属性?

1 个答案:

答案 0 :(得分:0)

简单的答案是否定的。关系的每一端都必须有自己的导航属性。