1

我对自引用代码优先实体有疑问。我们的代码是这样的:

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),我收到以下错误消息,表明 Add-Migration 在 Contact 和 Contact 之间找不到 Principalend。

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

非常感谢。亲切的问候克里斯蒂安·马斯

4

1 回答 1

0

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

这样做,它会起作用:

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

public virtual Contact AssignedCompany { get; set; }

public virtual ICollection<Contact> AssignedContacts { get; set; }
于 2013-03-26T06:16:57.960 回答