4

我在断开连接的情况下工作,但我注意到处理对象上下文不会释放附加的实体。结果,后续操作经常因此而失败。

因此,为了解决这个问题,我在处理对象上下文时自己分离所有内容:

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;    
}

但是,副作用是对象图完全分离,但我真的想保留图!

看来我没有找到解决方案,是真的做不到吗?

4

1 回答 1

1

我们也有这个问题;您不能将图表的一部分附加到 EF 上下文。您是否考虑过最初以分离状态加载数据?然后将上下文用作无状态的数据存储库,仅此而已。

您可以按如下方式加载最初分离的数据:

myDataContext.MyEntitySet.MergeOption = MergeOption.NoTracking;
于 2011-06-16T11:21:23.360 回答