EF6一次更新3个表
本文关键字:一次 更新 3个表 EF6 | 更新日期: 2023-09-27 17:49:20
我有一个有3个表的数据库
表客户
CustomerID (PK)
Name
表为
OrderID (PK)
CustomerID (FK)
OrderDate
表 OrderDetailLine
OrderDetailLineID
OrderID (FK)
Price
ProductCode
我想在实体框架中做的是添加一个客户,然后添加几个不同的订单,每个订单都有许多OrderDetailLine,所有这些都与插入的第一个客户相关。我已经连接了SQL Server中的所有关系,并将它们导入EF模型。一切都没问题。我可以插入一个客户和许多订单和orderdetailine 第一次所有记录都插入到正确的数据库表
我在一个文件中循环客户和订单,然后将客户和订单添加到数据库
但是当我想为同一个客户添加另一个订单时(我在CustomerID的客户上得到一个主键违反)。EF试图在我的初始context.SaveChanges();
那么,当使用相同的数据上下文时,我如何阻止EF尝试添加相同的客户?
我已经转了几个小时,得到相同的错误
{" INSERT语句与外键约束冲突'"FK_Order_Customer'"。冲突发生在数据库"xxxxx",表"dbo"中。客户'",列'CustomerID'
客户是与订单和订单行一起新创建的。但它第一次工作,我得到CustomerID从EF返回。但是当我在初始context. savchanges()之后添加新的order和orderlines时;我得到FK错误
感谢您的宝贵时间。
问题是我只是调用DataContext.SaveChanges()
,将实体添加到正确的模型中。例如:
Customer.Order.Add(customerInfo);
是我不够了解。