实体框架 - 引用相同表的两个属性

时间:2016-02-16 01:21:12

标签: 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 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类上有两个REVERSE属性,它们告诉已安装的机器列表以及修复的机器。当我在迁移后尝试更新数据库时,出现错误。我认为ForeignKeyAttribute是关键,但显然它不适合我。这是错误:

介绍FOREIGN KEY约束' FK_dbo.Machines_dbo.Employees_InstalledByID'在桌子上'机器'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束。查看以前的错误。

另外,我尝试过使用OnModelCreating和FluentAPI,但我的尝试没有用。关于我做错了什么以及如何解决它的任何指示都将非常感激。谢谢大家。

0 个答案:

没有答案