当前位置: 首页 > 编程语言 > C#

多个添加的实体在实体框架中可能具有相同的主键Share

时间:2023-04-10 20:06:53 C#

多个添加的实体在实体框架中可能具有相同的主键我正在使用EF4.0进行项目。Employee表有一列ReferEmployeeID,其中包含在系统中推荐新员工的员工的员工ID。所以Employee是一个自引用表。现在,如果要添加未添加到系统中的员工,并且他还引用了系统中的其他员工,则根本不应该添加该行。ActualEmployeesavehasnotbeencalled,thenReferEmployee.Employee=ActualEmployee我明白问题是员工实际和推荐都将员工ID设置为0,但如何解决这个问题。假设数据库表中的EmployeeID定义为INTIDENTITY,那么您可以这样做://创建两个新员工-一个引用另一个Employeejohn=newEmployee{EmployeeID=-1,EmpName="John"};Employeepeter=newEmployee{EmployeeID=-2,EmpName="Peter",ReferEmployeeID=-1};//将它们添加到EF模型中ctx.AddToEmployees(john);ctx.AddToEmployees(彼得);//保存更改ctx.SaveChanges();因此,基本上,使用“虚拟”EmployeeID值定义您的新员工并建立链接(Peter在这里通过他的“虚拟”ID指代John)。将其保存到SQLServer时,实体框架将处理获取真实EmployeeID值(插入行时SQLServer分发)的过程,EF将维护两个员工之间的链接。以上是C#学习教程:多个添加的实体在实体框架中可能有相同的主键。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: