我的代码在控制器中已经有类似的东西了:
[OutputCache(Duration = 86400]
public string SelectTopics(bool showAll = true, string topicID = null)
{
return SelectHelper.Topics(showAll, topicID);
}
我说这会被缓存吗?
外部非控制器类和方法如何?有没有办法可以使用这些数据库缓存或必须通过控制器进行所有数据库缓存?那么访问数据的其他方式/方法呢?还有其他允许缓存的东西吗?
答案 0 :(得分:2)
我说这会被缓存吗?
这会缓存整个HTML输出。这意味着如果缓存输出,则甚至不会执行控制器操作。在这种情况下,SelectHelper.Topics
将无法运行。
缓存数据的其他方法涉及在System.Runtime.Caching命名空间中使用类。它们允许您将NET对象存储到缓存中。例如,您可以将从数据库调用中检索到的结果存储到缓存中,然后在下次访问数据库之前检查缓存是否包含这些结果。您可以查看MemoryCache类作为示例。