我想在我的asp.net-mvc站点中缓存我最繁重的数据库操作。在我的研究中我发现
但我觉得我还没明白。
我希望能够缓存我的POST请求,这取决于几个分析。这些解析器在一个对象中。因此,我想缓存以下请求的结果:
public ActionResult AdvancedSearch(SearchBag searchBag)
其中searchBag是保存(一堆)可选搜索参数的对象。我的视图本身是轻量级的(正如它们应该的那样),但数据访问可能相当耗时,这取决于搜索包中填充了哪些字段。
我感觉我应该在我的数据层上缓存,而不是在我的操作上缓存。
我应该如何使用OutputCache属性中的VaryByParam呢?
发布于 2008-12-23 04:25:40
我也喜欢在模型层或数据层中进行缓存。这隔离了与从控制器/表示中检索数据有关的所有操作。您可以从System.Web.HttpContext.Current.Cache
访问ASP.NET缓存,也可以使用企业库中的缓存应用程序块。从查询的参数创建缓存数据的键。请确保在更新数据时使缓存无效。
发布于 2009-02-07 02:24:06
或者,您可以独立于HttpRuntime.Cache的HttpContext.Current和访问缓存:)
发布于 2009-02-07 05:51:03
通常,OutputCaching可能是最快、最高效的,但只有在它满足您的需求时才能做到。如果快速高效是错误的,那就没有意义了!;)
在这种情况下,数据层的缓存听起来是正确的,因为您有复杂的缓存需求。有时,如果控制缓存的输出的参数集很简单,则可以将两者结合使用。
https://stackoverflow.com/questions/385986
复制相似问题