ASP.NET MVC:如何正确地将自定义对象引用到 ApplicationUser

本文关键字:自定义 对象引用 ApplicationUser 正确地 NET MVC ASP | 更新日期: 2023-09-27 18:31:47

目前我正在尝试将我的自定义对象连接到由Visual Studio自动生成的应用程序用户。

Employee.cs

public class Employee
{
    [Display(Name = "ID")]
    [Key]
    public int EmployeeID { get; set; }
    [ForeignKey("ApplicationUser")]
    public int ApplicationUserID { get; set; }
    [Required]
    [DataType(DataType.Currency)]
    public decimal MonthlySalary { get; set; }
    [Required]
    public string Experience { get; set; }
    [Required]
    public string Description { get; set; }
    public string PhotoURL { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}

错误是:

运行选定的代码生成器时出错:"无法 检索 Models.Tables.Employee 的元数据。一个或多个验证 在模型生成过程中检测到错误: Parent_ApplicationUser_Target_Parent_ApplicationUser_Source: : The 引用的依赖角色中所有属性的类型 约束必须与 主要角色。实体上的属性"应用程序用户 D"的类型 "父"与实体上的属性"Id"类型不匹配 引用约束中的"应用程序用户" "Parent_ApplicationUser。员工申请用户目标员工 应用程序用户源::依赖属性中所有属性的类型 参照约束的角色必须与相应的 主体角色中的属性类型。属性的类型 实体"员工"上的"应用程序用户lD"与 引用中实体"应用程序用户"上的属性"Id" 约束'Employee_ApplicationUser。

Parent表包含与 Employee 相同的ApplicationUser引用。我做错了什么?感谢您的帮助

ASP.NET MVC:如何正确地将自定义对象引用到 ApplicationUser

默认情况下(由 VS 在使用 CodeFirst 创建新项目时生成),ApplicationUser 的 Id 类型为 stringEmployeeApplicationUser 的外键属于 int 类型,因此存在类型不匹配。

public class ApplicationUser : IdentityUser
{
  //Id in IdentityUser is of type string
}