[英]Self referencing association between same types in EF for multiple members
我有一个从“ 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(也是雇员类型),并且必须有一个经理(也是雇员类型)。 经理是必需的,这意味着将有至少一名员工担任经理。
该错误消息告诉您,它不知道哪个实体取决于哪个实体。
使用Fluent API,您可以告诉modelbuilder,它是依赖的,并且是可选的:
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; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.