我有一个MVC API ActionFilterAttribute,它使用Entity Framework进行权限检查。我发现由于ActionFilterAttribute缓存,EF连接经常被破坏。您可以找到有关here的其他问题。那么有人知道如何在ActionFilterAttributes中阻止缓存吗?
答案 0 :(得分:4)
只是对标题的注释:我会说MVC中的动作过滤器没有被缓存,它们充当单例(如您提供的链接中所述)。
作为满足您需求的答案,我会说使用基于请求的持久性。因为你很可能想做一些像: - OnActionExecuting()(例如打开事务) - OnActionExecuted()(提交或回滚)
所以把你的对象(_unitOfWork)放进
System.Web.HttpContext.Current.Items
您可以使用单例方法访问它,同时对依赖于请求的对象进行操作。我正在以类似的方式使用NHibernate Session