在实体框架4中保存断开连接的对象

Mic*_*hel 2 entity-framework entity-framework-4

在EF1中,我不能只更新在ObjectContext范围之外构造的对象(具有正确的id).

EF4有新方法吗?

我可以将它添加到上下文中(context.AddOrder(order))(上下文是我的ObjectContext的一个实例)并且'它'看到它有一个id并更新它吗?

这是非poco所以我的对象来源于 EntityObject

Mor*_*avi 5

如果它是一个全新的对象,那么你应该使用ObjectContext.AddObjectObjectSet.AddObject:
ADDOBJECT方法是将那些新创建的对象存在于数据库中.实体将获得自动生成的临时EntityKey,其EntityState将设置为Added.

另一方面,ObjectContext.AttachObjectSet.Attach用于数据库中已存在的实体.而不是将EntityState设置为Added,将结果附加为UnchangedEntityState,这意味着它自附加到上下文后没有更改.假定您附加的对象存在于数据库中.

有关此主题的更详细讨论,请查看以下文章:
实体框架4 - AddObject与Attach