我的应用程序使用一个存在于应用程序生存期的上下文实例。我使用实体框架来读取和写入所有数据到数据库。添加对象之后,我希望它们被垃圾收集器清理,以便它们不会留在内存中。我已经试过如下:context.detach - 用于垃圾回收
While context.BatchProgresses.Count > 0
context.Detach(context.BatchProgresses.First())
End While
但这是运行到一个无限循环。 Context.Detach()
不应该从Context.BatchProgresses
中删除项目?
单身上下文是一个非常糟糕的主意,只会在痛苦中结束。上下文是一个工作单元。你的工作单位不是“我应用程序的整个生命周期”。 – 2010-07-09 12:59:34
我很欣赏这个建议。我最终将任务分解成多个上下文。我最初避免了这种策略,因为我担心在定时器循环中创建和销毁上下文的性能影响,但事实证明几乎没有性能影响。 – Terry 2010-07-13 20:30:09