LinqToSql DataContext缓存和内存使用情况

时间:2012-02-02 12:42:30

标签: .net linq linq-to-sql caching datacontext

我想知道LINQ to SQL DataContext缓存是否使用WeakReference或类似系统以避免在几次请求后使用太多内存?

此行为是否取决于ObjectTrackingEnabled属性?

1 个答案:

答案 0 :(得分:2)

没有;它使用常规引用,因为通常它需要保持对象以执行更改跟踪(如您所述),但也需要身份管理器才能工作。

然而,这不是问题 - 因为您只是简单地使用DataContext实例作为工作单元。否则,更改跟踪器/身份管理器的开销很快就会使数据上下文完全膨胀并且无法使用(太慢)。

因此;只需简单地使用数据上下文,并在操作完成后收集对象。不要随意保持数据上下文。

有时,您根本不需要数据上下文;对于读取主导的应用程序,有其他但类似的查询机制。