【发布时间】:2017-01-08 16:26:22
【问题描述】:
我正在使用全局异常处理程序处理未处理的异常。当请求处理过程中出现未处理的异常时,是否调用了控制器的dispose方法? (在 MVC 和 Web API 中?)
例如,我试图在整个请求中使用相同的 EF dbcontext。使用这个基类是否安全:
public abstract class BaseController : Controller
{
public BaseController()
{
Database = new DatabaseContext();
}
protected DatabaseContext Database { get; set; }
protected override void Dispose(bool disposing)
{
Database.Dispose();
base.Dispose(disposing);
}
}
【问题讨论】:
-
如果您有复杂的生命周期并且需要线程化
DbContext,您应该查看github.com/mehdime/DbContextScope,它非常强大且相当轻量但复杂,因此您需要一个用例。也就是说,仅仅阅读导致 lib 开发的背景对这个主题很有启发。
标签: c# asp.net asp.net-mvc entity-framework asp.net-web-api