在辅助表中创建ApplicationUser的外键(EntityFramework Identity)

时间:2015-12-22 07:13:14

标签: asp.net-mvc entity-framework

我的 ApplicationUser 模型定义如下:

public class ApplicationUser : IdentityUser
{
    public virtual UserProfileInfo UserProfileInfo { get; set; }
}

UserProfileInfo 是包含额外用户数据的辅助表,定义如下:

public class UserProfileInfo
{
    public int Id { get; set; }
    public string SuperiorId { get; set; }
    [ForeignKey("SuperiorId")]
    public virtual ICollection<ApplicationUser> Superior { get; set; }
}

每个用户在业务层次结构中都有一个或多个优于他们的人。但是,尝试执行迁移会导致以下错误:

  

属性&#39; Superior&#39;上的ForeignKeyAttribute on type&#39; Project.Models.UserProfileInfo&#39;无效。外键名称&#39; SuperiorId&#39;在依赖类型&#39; Project.Models.ApplicationUser&#39;上找不到。

如何在我的情况下对 ApplicationUser 进行外键引用?

1 个答案:

答案 0 :(得分:1)

你需要反过来做,ID是导航属性的外键:

public class UserProfileInfo
{
   public int Id { get; set; }
   [ForeignKey("Superior")]
   public string SuperiorId { get; set; }

   public virtual ICollection<ApplicationUser> Superior { get; set; }
}