1

我有一个对象 OrderDetail。这有一个 ID、产品对象列表和一个运输详细信息对象。

订单详细信息和运输详细信息是新的,产品不是,即它们已经存在于数据库中。

我的问题是,当我执行 context.savechanges() 时,产品被添加到数据库中,即重复。

无论如何我可以将产品标记为“不要插入只使用 ID”吗?

我真的不想改变我的模型,说每个产品都有一个订单细节,因为(1)这在逻辑上是错误的,(2)可能会导致性能问题?

谢谢

4

1 回答 1

0

无论如何我可以将产品标记为“不要插入只使用 ID”吗?

是的,但您必须自己处理:

dbContext.OrderDetails.Add(orderDetail);
foreach(var product in orderDetail.Products) {
    dbContext.Entry(product).State = EntityState.Unchanged;
}    
dbContext.SaveChanges();
于 2012-06-22T10:58:13.390 回答