实体框架4.3对象图更新

时间:2012-06-22 10:08:07

标签: entity-framework

我有一个OrderDetail对象。这有一个ID,产品对象列表和发货明细对象。

订单明细和发货详情是新的,产品不是即已存在于数据库中。

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

  

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

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

dbContext.OrderDetails.Add(orderDetail);
foreach(var product in orderDetail.Products) {
    dbContext.Entry(product).State = EntityState.Unchanged;
}    
dbContext.SaveChanges();