-1

我正在寻找一种非常快速的方法来释放(分离)部分或完整的对象集,而不会删除其他类型的对象集实体。

在我们的场景中,我们使用了很多带有主要对象上下文的对象集。有些表将来会有非常大量的数据,我们不想完全加载到内存中。只有最后一年的数据将与起始过滤器一起加载,如果用户愿意,他可以将过滤器更改为其他内容。过滤部分工作起来很简单,但是如果过滤器只加载以前尚未加载的实体,则旧实体将由 objectcontext 保存在内存中。在速度非常快的计算机上,分离 1-2000 个实体可能需要 4-5 秒。这即使对我来说也是不可接受的,尤其是只需更换一次过滤器,这个数字就可以而且将超过 40000。

4

1 回答 1

2

如果您使用实体框架,这应该不是问题,因为它被设计为使用。

EF 被设计为具有短暂的对象上下文。您为每个操作创建一个上下文,并在操作完成后将其销毁。让对象上下文长时间保持活动状态是一个坏主意,尽管对于桌面应用程序来说并没有 Web 应用程序那么糟糕。

长时间保持上下文几乎没有什么好处。

EF 无法从对象图中删除对象,因为它旨在在您完成操作时破坏上下文。销毁上下文是释放内存的预期方式。

于 2012-12-25T11:41:02.240 回答