这里有业务需求,简言之:建模员工-助理(S)与EF代码优先关系
- 所有员工需要被存储在数据库中
- 有些员工有助理 ,有的没有
- 有些员工有一个以上的助理
- 助理是员工,以及
显然有一点自我参照的情况。但与典型的“员工经理”情况的不同之处在于,这里一名员工可以有0个或多个助理。所以,员工和员工的助理需要的组合存储在一个单独的表中一个一对多的关系员工和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' 可能会导致循环引进国外KEY约束 'FK_dbo.EmployeeAssistant_dbo.Employee_EmployeeId'或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
我错过了什么?我应该采取不同的方式吗?
也许这将帮助你:http://stackoverflow.com/ questions/14489676/entity-framework-how-to-solve-foreign-key-constraint-may-cause-cycles-or-multi –