我遇到了自引用代码优先实体的问题。我们的代码是这样的:
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
答案 0 :(得分:0)
只有在类之间存在多个关系时,才应使用InverseProperty属性。您可以通过删除所有InverseProperty属性来解决您的问题。
这样做,它会起作用:
[ForeignKey("AssignedCompany")]
public Guid? AssignedCompanyId { get; set; }
public virtual Contact AssignedCompany { get; set; }
public virtual ICollection<Contact> AssignedContacts { get; set; }