实体框架代码优先4.1 IIS工作进程内存占用不断增长

时间:2011-11-27 13:56:38

标签: memory-leaks entity-framework-4.1 ef-code-first

我有一个小网站(MVC 3),可以进行一些基本的数据收集。我有一些看似随机的超时,经过调查,我注意到每当执行包含CRUD操作的页面时,IIS工作进程内存使用量会有所增长,但永远不会减少。

该网站使用EF Code First。这是我第一次尝试EFCF,所以如果我遇到问题,我也不会感到惊讶。任何关于我应该检查的建议或处理对象的最佳实践的任何建议,以确保在视图完成时妥善处理它们将不胜感激。

如有必要,我可以提供示例代码。

1 个答案:

答案 0 :(得分:3)

确保您的代码没有保留DBContext的引用。您的DBcontext实例应该尽可能短。另外,检查是否已禁用对象跟踪。如果启用了对象跟踪,并且您将DBContext的实例保留为会话/应用程序/静态变量。然后你的记忆力会增长。

要禁用对象跟踪,请按以下方式构建查询

来自mycontext.Entities中的e。 AsNoTracking() 哪里(条件) 选择e

这将阻止dbcontext缓存您的实体。