這裏有業務需求,簡言之:建模員工-助理(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 –