我将解释整个情况,以防有人有比我得到的更好的解决方案。
首先,这些是我正在使用的技术:
SQL Server 2012 Entity Framework 5 ASP.NET MVC 4 Repository Pattern for EF5 developed by myself
我在代码的某些部分不断收到 SQL Server 的错误 19(物理连接不存在)。根据我的研究,我可以看到我没有确保连接在使用后关闭。我能找到的替代方案是:
- 使用关键字
using
- 我的操作返回后关闭连接
我放弃了第一种方法,因为代码非常大,所以现在找到每个使用我的上下文并更改它的地方是遥不可及的。
所以我考虑使用第二种方法,我只需要创建一个属性来装饰我的控制器,每次action
返回时我都会确保连接在之后关闭/处理。我已经知道该怎么做:
public class MyAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//code to get the current running connection
}
}
我的问题是:如何获取当前实体框架连接并从我的属性中关闭它?
非常感谢任何帮助,谢谢!