我有一个小网站(MVC 3),可以进行一些基本的数据收集。我有一些看似随机的超时,经过调查,我注意到每当执行包含CRUD操作的页面时,IIS工作进程内存使用量会有所增长,但永远不会减少。
该网站使用EF Code First。这是我第一次尝试EFCF,所以如果我遇到问题,我也不会感到惊讶。任何关于我应该检查的建议或处理对象的最佳实践的任何建议,以确保在视图完成时妥善处理它们将不胜感激。
如有必要,我可以提供示例代码。
答案 0 :(得分:3)
确保您的代码没有保留DBContext的引用。您的DBcontext实例应该尽可能短。另外,检查是否已禁用对象跟踪。如果启用了对象跟踪,并且您将DBContext的实例保留为会话/应用程序/静态变量。然后你的记忆力会增长。
要禁用对象跟踪,请按以下方式构建查询
来自mycontext.Entities中的e。 AsNoTracking() 哪里(条件) 选择e
这将阻止dbcontext缓存您的实体。