实体框架5自我引用一对多或一个实体

时间:2013-01-22 13:53:13

标签: ef-code-first entity-framework-5 ef-migrations self-reference

我遇到了自引用代码优先实体的问题。我们的代码是这样的:

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

   [ForeignKey("AssignedCompany")]
   public Guid? AssignedCompanyId { get; set; }

   [InverseProperty("AssignedContacts")]
   public virtual Contact AssignedCompany { get; set; }
   [InverseProperty("AssignedCompany")]
   public virtual ICollection<Contact> AssignedContacts { get; set; }
}

如果我想启动Add-Migration(EF 5),我得到以下Errormessage,Add-Migration无法在Contact和Contact之间找到Principalend。

我做错了什么? 有人知道答案吗?

非常感谢。亲切的问候 ChristianMaaas

1 个答案:

答案 0 :(得分:0)

只有在类之间存在多个关系时,才应使用InverseProperty属性。您可以通过删除所有InverseProperty属性来解决您的问题。

这样做,它会起作用:

[ForeignKey("AssignedCompany")]
public Guid? AssignedCompanyId { get; set; }

public virtual Contact AssignedCompany { get; set; }

public virtual ICollection<Contact> AssignedContacts { get; set; }