实体框架 4.3 对象图更新



>我有一个对象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();

最新更新