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