嗨,这是我的数据库图表。
我正在尝试将行插入到 Order 和 OrderItem 表中。插入 Order 表没问题。 但是,当我尝试插入 OrderItem 表时出现异常。无法插入 Product 表,ProductId 已经存在。为什么会这样?
Insert code:
db.Orders.Add(newOrder);
db.SaveChanges();
newOrder.OrderItems = products.Convert(newOrder);
foreach (var orderItem in newOrder.OrderItems)
{
db.OrderItems.Add(orderItem);
}
db.SaveChanges();
新订单对象已经有一个订单项目列表,如果我要插入的 OrderItem 记录在产品表中没有现有的 productId,我只需要一个异常(exception)(对于 productId),而不是插入到 Product 表中。这如何修复?
最佳答案
交叉检查订单项列表是否具有 Product 实体对象,因为它是 OrderItem 表的外键。您也可以尝试在子表中显式插入,例如先插入 Order 然后使用 Order 实体对象的 Order Items 这应该可行(注意 OrderItem 应该有 Product 实体对象)。
关于c# - Entity Framework - 尝试插入到带有外键的表中,EF 尝试插入到带有主键的原始表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243517/