简而言之,以下是业务需求:
- 所有员工都需要存储在数据库中
- 有些员工有助理,有些没有
- 一些员工有不止一名助理
- 助理也是雇员
显然有一点自我参照的情况。但与典型的“员工-经理”情况不同的是,一个员工可以有 0 个或多个助手。因此,Employee和员工助手的组合需要以Employee和EmployeeAssistant之间的一对多关系存储在单独的表中。但是我很困惑如何在 Entity Framework 6 Code First 中对此进行建模。
我从这个开始:
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class EmployeeAssistant
{
[ForeignKey("Employee")]
public int EmployeeId { get; set; }
public virtual Employee Employee { get; set; }
[ForeignKey("Assistant")]
public int AssistantId { get; set; }
public virtual Employee Assistant { get; set; }
}
Update-Database
但我在命令期间收到错误:
在表“EmployeeAssistant”上引入 FOREIGN KEY 约束“FK_dbo.EmployeeAssistant_dbo.Employee_EmployeeId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
我错过了什么?我应该以不同的方式处理这个问题吗?