首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >asp.net-mvc中的缓存

asp.net-mvc中的缓存
EN

Stack Overflow用户
提问于 2008-12-22 10:51:48
回答 4查看 54.5K关注 0票数 82

我想在我的asp.net-mvc站点中缓存我最繁重的数据库操作。在我的研究中我发现

但我觉得我还没明白。

我希望能够缓存我的POST请求,这取决于几个分析。这些解析器在一个对象中。因此,我想缓存以下请求的结果:

代码语言:javascript
复制
public ActionResult AdvancedSearch(SearchBag searchBag)

其中searchBag是保存(一堆)可选搜索参数的对象。我的视图本身是轻量级的(正如它们应该的那样),但数据访问可能相当耗时,这取决于搜索包中填充了哪些字段。

我感觉我应该在我的数据层上缓存,而不是在我的操作上缓存。

我应该如何使用OutputCache属性中的VaryByParam呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-12-23 04:25:40

我也喜欢在模型层或数据层中进行缓存。这隔离了与从控制器/表示中检索数据有关的所有操作。您可以从System.Web.HttpContext.Current.Cache访问ASP.NET缓存,也可以使用企业库中的缓存应用程序块。从查询的参数创建缓存数据的键。请确保在更新数据时使缓存无效。

票数 74
EN

Stack Overflow用户

发布于 2009-02-07 02:24:06

或者,您可以独立于HttpRuntime.Cache的HttpContext.Current和访问缓存:)

票数 66
EN

Stack Overflow用户

发布于 2009-02-07 05:51:03

通常,OutputCaching可能是最快、最高效的,但只有在它满足您的需求时才能做到。如果快速高效是错误的,那就没有意义了!;)

在这种情况下,数据层的缓存听起来是正确的,因为您有复杂的缓存需求。有时,如果控制缓存的输出的参数集很简单,则可以将两者结合使用。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/385986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档