我正处于断开连接的场景中,但我注意到处置对象上下文不会释放附加的实体。因此,后续操作通常会因此而失败。
所以要解决这个问题,我会在处理对象上下文时自行分离所有内容:
public void Dispose()
{
// detaching is not really needed, because we have short living object contexts
var objectStateEntries =
_context.UnderlyingContext.ObjectStateManager.GetObjectStateEntries(EntityState.Unchanged);
objectStateEntries.ToList().ForEach(o => { if (o.Entity != null)
{
_context.UnderlyingContext.Detach(o.Entity);
}});
_context.Dispose();
_context = null;
}
然而,副作用是对象图完全分离,但我真的想保留图形!
似乎我找不到解决方案,这是不是真的无法完成?
答案 0 :(得分:1)
我们也有这个问题;您不能将图形的一部分附加到EF上下文。您是否考虑过最初在分离状态下加载数据?然后将上下文用作无状态数据存储库,而不是其他任何内容。
您最初可以按照以下方式加载数据:
myDataContext.MyEntitySet.MergeOption = MergeOption.NoTracking;