对于多重外键的概念,请参考
Sql 多重外键约束 一章
以一个部门类定义有中正副两个管理者的情况为例
//部门类定义
public class Department
{
public int ID { get; set; }
public string Name { get; set; }
public int PrimaryManagerID { get; set; } //正管理者外键
public virtual Manager PrimaryManager { get; set; } //正管理者导航
public int SecondManagerID { get; set; } //副管理者外键
public virtual Manager SecondManager { get; set; } //副管理者导航
}
//管理者类定义
public class Manager
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Department> PrimaryDepartments { get; set; } //正职部门导航
public virtual ICollection<Department> SecondDepartments { get; set; } //副职部门导航
}
这样的定义会使EF产生一个异常:
将 FOREIGN KEY 约束 'FK_dbo.Department_dbo.Manager_SecondMana

本文探讨了在EF CodeFirst中遇到多重外键约束导致的循环或多重级联路径异常问题。解决方案包括使用Fluent API去除外键约束的级联删除规则,以及利用InverseProperty特性明确关系,避免生成额外的外键。
最低0.47元/天 解锁文章
3348

被折叠的 条评论
为什么被折叠?



