這種循環依賴在我的應用程序,一個Agency
有許多Employees
,其中之一是委託表示機構的擁有者:如何解決在EF
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public int EmployerId { get; set; }
[ForeignKey("EmployerId")]
public virtual Agency Employer { get; set; }
}
public class Agency
{
public int AgencyId { get; set; }
public string AgencyName { get; set; }
public int OwnerId { get; set; }
[ForeignKey("OwnerId")]
public virtual Employee Owner { get; set; }
[InverseProperty("Employer")]
public virtual ICollection<Employee> Employees { get; set; }
}
我嘗試使用進入一個新的Agency
到DATEBASE此代碼:
var agency = new Agency();
// ...
context.Agencies.Add(agency);
var owner = new Employee();
// ...
context.Employees.Add(owner);
owner.Employer = agency;
agency.Owner = owner;
context.SaveChanges();
當我打電話SaveChanges
,我收到以下錯誤,我假設是由於循環依賴我如上所述:
無法確定依賴操作的有效順序。 由於外鍵約束, 需求或商店生成的值,可能會存在依存關係。
在EF中是否有方法來指定「依賴操作」的順序?或者,有沒有更好的方式來編寫我的數據庫,以便它能解決這個問題,但仍然模擬我想要的數據結構?
不實際的數據庫架構看起來像你期待什麼呢? –
是的,正是我期待的。 – ajbeaven