在我的申请中, anAgency
有很多Employees
,其中一个被委托给该机构的所有者:
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
使用以下代码在数据库中输入一个新的:
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中有没有办法指定“依赖操作”的顺序?或者,是否有更好的方法来编写我的数据库,以便它解决这个问题但仍然模拟我想要的数据结构?