我有一个继承自" IdentityUser"。
的员工类 public class Employee : IdentityUser
{
public String Name { get; set; }
public string ManagerID { get; set; }
public virtual Employee Manager { get; set; }
}
这很好用,但是当我添加另一个相同类型的属性时,比如
public virtual Employee TeamLead { get; set; }
抛出以下异常:
无法确定之间关联的主要结束 类型' eHRMS.DAL.Models.Employee'和' eHRMS.DAL.Models.Employee'。该 必须使用显式配置此关联的主要结尾 关系流畅的API或数据注释
附加说明: 我希望TeamLead是可选的,Manager需要。
更新 我真正想要的是拥有一个员工列表,每个员工都可以拥有一个TeamLead(也是一个Employee类型),并且必须有一个Manager(也是Employee Type)。 经理是必需的,意味着至少有一名员工是自己的经理。
答案 0 :(得分:0)
错误消息告诉您,它不知道哪个实体依赖于哪个。
使用Fluent API,您可以告诉模型构建器,它是dependet,并且可以选择:
modelBuilder.Entity<Employee>()
.HasOptional(f => f.TeamLead)
.WithRequired(s => s.Manager);
如果员工需要经理,您可以使用DataAnnotations来解决这个问题:
public class Employee : IdentityUser
{
public String Name { get; set; }
public string ManagerID { get; set; }
[Required]
public virtual Employee Manager { get; set; }
public virtual Employee TeamLead { get; set; }
}