我读过的所有示例都将OutputCache应用于Controller操作方法。但现在我有一个存储库方法,它检索Active目录用户。所以我想缓存这个模型类,如:
[OutputCache(CacheProfile = "long", Location = OutputCacheLocation.Server, VaryByParam = "term")]
public List<DomainContext> GetADUsers(string term)
{
List<DomainContext> results = new List<DomainContext>();
using (var context = new PrincipalContext(ContextType.Domain, "WIN-SPDEV"))
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
var searchResults = searcher.FindAll();
为了实现这一点,我必须在我的存储库模型类中包含以下内容: -
using System.Web.Mvc;
using System.Web.UI;
所以添加缓存设置&amp;是错误的或者是不好的做法。包括`System.web.mvc + system.Web.UI,insdie一个存储库模型类?
答案 0 :(得分:4)
所以添加缓存设置&amp;是错误的或者是不好的做法。 包括`System.web.mvc + system.Web.UI,insdie一个存储库模型 类?
不仅是不好的做法,而且它根本不起作用,因为OutputCache
属性只对整个输出被缓存的控制器动作产生影响。您可以使用MemoryCache
来缓存方法的结果。所以在这里你可以先查看缓存是否存在一个用户列表,如果它不查询AD并将结果缓存回来。