CF EF MVC来自同一个表的多个1对1外键

时间:2015-08-15 22:53:27

标签: c# entity-framework model-view-controller code-first

我有这个:

public class Match
{
    [Key]
    public string Id { get; set; }
    [ForeignKey("MatchedUser1")]
    public string IdOf1 { get; set; }
    [ForeignKey("MatchedUser2")]
    public string IdOf2 { get; set; }

    [InverseProperty("User1")]
    public virtual ApplicationUser MatchedUser1 { get; set; }
    [InverseProperty("User2")]
    public virtual ApplicationUser MatchedUser2 { get; set; }

    public List<ApplicationUser> User1 { get; set; }
    public List<ApplicationUser> User2 { get; set; }

    public virtual ApplicationUser User { get; set; }
}

我们的想法是将一个包含2个用户的表(Match)作为外键。

当我尝试添加迁移时,控制台会回复:

  

&#34; InversePropertyAttribute on property&#39; MatchedUser1&#39;在类型上   &#39; H4L.Web.Models.Match&#39;无效。该物业&#39; User1&#39;不是一个   相关类型的有效导航属性   &#39; H4L.Web.Models.ApplicationUser&#39 ;.确保该属性存在并且   是有效的引用或集合导航属性。&#34;

我不想使用流畅的API,除非它是唯一的方法。

1 个答案:

答案 0 :(得分:0)

终于明白了。 我认为代码必须完全在这个类中完成,但显然我需要在ApplicationUser类中添加它:

public virtual ICollection<Match> User1 { get; set; }
public virtual ICollection<Match> User2 { get; set; }