情况:我想做的是访问页面生命周期的数据上下文。这主要是为了 (a) 避免一系列 using() 并避免 (b) 当访问延迟加载的属性时视图中出现超出范围的异常。
编辑:我正在使用 MVC 4 和 Entity Framework 4.3.1(最新)
我通常做的是
using (MyDB b = new MyDB()) {
...do all my stuff
}
在我的控制器或数据层中。根据我的阅读,这样做的好处是它很干净,不会导致内存泄漏等。但缺点是即使在单个页面的生命周期中,我最终也会一次又一次地这样做,并且我的对象在视图,因为我已经处理了上下文。
我做了一些阅读并找到了 2009 年的类似帖子,但答案中没有代码。当然,其他一些人已经想出了如何解决这个问题 - 我想我必须做点什么
Application_BeginRequest and EndRequest
但我只是不确定如何,以及陷阱/最佳实践是什么。
感谢您的帮助(如果可能,请提供一些代码示例!)