我有一个OrderDetail对象。这有一个ID,产品对象列表和发货明细对象。
订单明细和发货详情是新的,产品不是即已存在于数据库中。
我的问题是,当我执行context.savechanges()时,产品会被添加到数据库中,即重复。
无论如何,我可以将产品标记为“不插入只使用ID”?
我真的不想改变我的模型,说每个产品都有订单明细,因为(1)这在逻辑上是错误的,(2)可能会导致性能问题?
由于
答案 0 :(得分:0)
无论如何,我可以将产品标记为“不插入只使用ID”?
是的,但你必须自己处理:
dbContext.OrderDetails.Add(orderDetail);
foreach(var product in orderDetail.Products) {
dbContext.Entry(product).State = EntityState.Unchanged;
}
dbContext.SaveChanges();