【发布时间】:2016-08-29 04:15:13
【问题描述】:
简而言之,以下是业务需求:
- 所有员工都需要存储在数据库中
- 有些员工有助理,有些则没有
- 有些员工有不止一名助理
- 助理也是员工
显然存在一些自我参照的情况。但与典型的“员工-经理”情况不同的是,一个员工可以有 0 个或多个助手。所以,Employee 和员工的Assistants 的组合需要以 Employee 和 Employee 之间的一对多关系存储在单独的表中strong>员工助理。但是我很困惑如何在 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 约束。
我错过了什么?我应该以不同的方式处理这个问题吗?
【问题讨论】:
标签: c# asp.net-mvc ef-code-first entity-framework-6 self-referencing-table