Jam*_*mes 6 .net c# asp.net-mvc entity-framework
我目前有一个叫做EmployeeDetails下面的类.
public class EmployeeDetails {
    public int EmployeeDetailsId { get; set; }
    public string Name { get; set; }
    public string Title { get; set; }
    [ForeignKey("Manager")]
    public int? ManagerId { get; set; }
    public virtual EmployeeDetails Manager { get; set; }
    [ForeignKey("LineManager")]
    public int? LineManagerId { get; set; }
    public virtual EmployeeDetails LineManager { get; set; }
}
我正在尝试添加Manager和LineManager引用相同类型对象的属性.当我尝试添加迁移时,我收到以下错误:
无法确定类型EmployeeDetails和之间关联的主要结束EmployeeDetails.
在添加LineManagerIdManagerId和LineManager属性之前,Manager属性按预期工作.
我该如何解决?
您必须指定关系的另一方。像这样:
public class EmployeeDetails
{
    public int EmployeeDetailsId { get; set; }
    public string Name { get; set; }
    public string Title { get; set; }
    [ForeignKey("Manager")]
    public int? ManagerId { get; set; }
    public virtual EmployeeDetails Manager { get; set; }
    [ForeignKey("LineManager")]
    public int? LineManagerId { get; set; }
    public virtual EmployeeDetails LineManager { get; set; }
    [ForeignKey("ManagerId")]
    public virtual ICollection<EmployeeDetails> ManagedEmployees { get; set; }
    [ForeignKey("LineManagerId")]
    public virtual ICollection<EmployeeDetails> LineManagedEmployees { get; set; }
}
生成的迁移
CreateTable(
    "dbo.EmployeeDetails",
    c => new
        {
            EmployeeDetailsId = c.Int(nullable: false, identity: true),
            Name = c.String(),
            Title = c.String(),
            ManagerId = c.Int(),
            LineManagerId = c.Int(),
        })
    .PrimaryKey(t => t.EmployeeDetailsId)
    .ForeignKey("dbo.EmployeeDetails", t => t.LineManagerId)
    .ForeignKey("dbo.EmployeeDetails", t => t.ManagerId)
    .Index(t => t.ManagerId)
    .Index(t => t.LineManagerId);
这能解决你的问题吗?