2012-11-04 63 views
1

我有一个使用实体框架进行权限检查的MVC API ActionFilterAttribute。我发现,因为ActionFilterAttribute缓存EF连接经常被打破。您可以找到关于here的其他问题。那么有没有人知道如何防止ActionFilterAttributes中的缓存?如何防止缓存MVC ActionFilterAttribute?

回答

4

只是注意你的标题:我会说MVC中的动作过滤器没有被缓存,他们作为单身人士(如你提供的链接中解释的)。

作为您的需求的答案,我会说使用基于请求的持久性。因为你很可能希望做一些东西,如: - OnActionExecuting()(例如,开放式交易) - OnActionExecuted()(提交或回滚)

所以,把你的对象(_unitOfWork)到

System.Web.HttpContext.Current.Items 

在请求相关对象上运行时,您可以通过单例方法访问它。我这样做与NHibernate Session