为什么调用.Clear()加载相关的实体?

时间:2012-12-11 15:26:57

标签: c# entity-framework

我有一个非常基本的EF模型,它有订单和订单行项目。在进行最终保存的过程中,我实际上将包含行项目的订单写入数据库,在添加来自会话变量的订单项之前,我调用Order.OrderItems.Clear()。在大多数情况下,此代码工作正常。但是我时不时地收到一封错误邮件(错误被捕获并发送给我),其中包含以下堆栈跟踪:

The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.   at System.Data.Objects.ObjectContext.EnsureConnection()
   at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Objects.ObjectQuery`1.Execute(MergeOption mergeOption)
   at System.Data.Objects.DataClasses.EntityCollection`1.Load(List`1 collection, MergeOption mergeOption)
   at System.Data.Objects.DataClasses.EntityCollection`1.Load(MergeOption mergeOption)
   at System.Data.Objects.DataClasses.RelatedEnd.Load()
   at System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad()
   at System.Data.Objects.DataClasses.EntityCollection`1.Clear()
   at UserRegistration.Models.SaveRepository.SaveOrder(Order order)

我理解对象上下文以及为什么它被处置(我已经禁用了我的EF模型上的延迟加载以防止将来阻止这种情况)但是为什么EF在做了清除之后会加载?

0 个答案:

没有答案