我有一个非常基本的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在做了清除之后会加载?