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
引用。我做错了什么?感谢您的帮助
默认情况下(由 VS 在使用 CodeFirst 创建新项目时生成),ApplicationUser
的 Id 类型为 string
。Employee
到 ApplicationUser
的外键属于 int
类型,因此存在类型不匹配。
public class ApplicationUser : IdentityUser
{
//Id in IdentityUser is of type string
}