Entity framework 实体框架——引用同一个表的两个属性

Entity framework 实体框架——引用同一个表的两个属性,entity-framework,Entity Framework,我继续我的实体框架的冒险,但现在我又被卡住了。我有两个小班: public class Machine { public int MachineID { get; set; } public string Name { get; set; } [Required] [ForeignKey("InstalledByID")] public virtual Employee InstalledBy { get; set; } public int

我继续我的实体框架的冒险,但现在我又被卡住了。我有两个小班:

public class Machine
{
    public int MachineID { get; set; }

    public string Name { get; set; }

    [Required]
    [ForeignKey("InstalledByID")]
    public virtual Employee InstalledBy { get; set; }
    public int InstalledByID { get; set; }

    [Required]
    [ForeignKey("LastServicedID")]
    public virtual Employee LastServiced { get; set; }
    public int LastServicedID { get; set; }
}

public class Employee
{
    public int EmployeeID { get; set; }

    public string Name { get; set; }
}
我正在尝试设置两个属性:InstalledBy和LastServiced。这两个属性都是Employee类的实例。此外,Employee类上有两个反向属性,告诉已安装和已修复机器的列表,我对此不太关心。当我尝试在迁移后更新数据库时,我得到一个错误。我以为ForeignKeyAttribute是关键,但显然它对我不起作用。以下是错误:

在表“Machines”上引入外键约束“FK_dbo.Machines_dbo.Employees_InstalledByID”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束。请参阅前面的错误


此外,我还尝试了OnModelCreating和FluentAPI,但我的尝试没有成功。任何关于我做错了什么以及如何修复的建议都将不胜感激。谢谢大家。

SQL Server不支持多个级联删除。必须至少将其中一个设置为不级联。我会尝试找出一个类似的问题。可能是重复的