【发布时间】:2010-02-11 13:59:00
【问题描述】:
我在 WinForms 应用程序中使用 EF,我的想法是每个事务都有一个 ObjectContext,而不是单个长时间运行的上下文。但是当我尝试将前一个事务中的对象附加到新事务中时出现错误,这与实体已经在另一个上下文中有关。
我有点假设当对象上下文被释放时实体被分离,不是这样吗? (也许我没有在某处正确地处理上下文)。如果实体没有被分离,有没有办法这样做?
编辑
显然,正如@F.Aquino 所说,在上下文处理后实体并没有被分离,但这样做似乎可行。虽然我不确定这是否是处理实体的正确方法。也许有人可以评论可能由此产生的问题:
public void Attach(params EntityObject[] objects)
{
foreach (EntityObject obj in objects)
{
((IEntityWithChangeTracker)obj).SetChangeTracker(null);
entities.Attach(obj);
}
}
基本上,当我想将实体重新附加到上下文时,我只需清空实体的更改跟踪器,然后将其附加到新上下文。它似乎工作正常。
【问题讨论】:
标签: c# .net entity-framework