.net - 实体框架如何在同一张表中设置外键为主键
问题描述
我写的是如何在同一个表中将外键设置为主键的问题。代码示例(它不起作用“可能导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。”)
class Employee
{
[Key]
public int EmployeeId { get; set; }
[ForeignKey("EmployeeId")]
public int ManagerId { get; set; }
}
解决方案
通过[ForeignKey("EmployeeId")]
,您将“EmployeeId”声明为 foreignKey 属性名称,首先通过 [key] 注释为 primaryKey 声明。您应该简单地更改其中之一并添加 Manager 类的导航属性或删除所有数据注释并让 Entity Framework 处理所有事情。
public class Employee
{
public int EmployeeId { get; set; }
//Foreign key for Manager
public int ManagerId { get; set; }
public Manager Manager { get; set; }
}
public class Manager
{
public int ManagerId { get; set; }
public ICollection<Employee> Employees { get; set; }
}
推荐阅读
- google-app-maker - 绑定转换器#formatNumber 不能用于创建/编辑表单中的字段
- graph - 饼图 gnuplot
- delphi - AttachConsole 和 64 位应用程序
- python - 请在 python 中使用 typeerror 建议
- react-native - react-native-fingerprint-scanner 不工作
- shell - 用 sed 替换特殊字符
- python - 如何在python中的列表中创建一个列表
- python - Pylint 在 VScode 中未按预期运行
- php - (FPDF,PHP,SQL)第一页后的表值变得凌乱
- python - 计算数组中零的数量的程序