我一直在寻找高低,但似乎找不到合适的答案。
我一直在Orchard中编写一个模块以及我用它的一些小部件,现在我想在我的类中启用数据库查询的缓存。
是否有关于如何向模块和小部件添加缓存的文档?
我试图只启用输出缓存和syscache,但它似乎只适用于Orchard附带的模块(我使用SQL Server Profiler检查过,我的查询仍然一直被发送到数据库,而正常的Orchard查询内容等,并没有,似乎是缓存的。)
答案 0 :(得分:0)
您可以使用ICacheManager。
将ICacheManager的实例注入构造函数,然后在您的方法中,您可以使用以下命令缓存值:
var myCachedValue = _cacheManager.Get("My-Value-Cache-Key", ctx => {
ctx.Monitor(_clock.When(TimeSpan.FromMinutes(20)));
return SlowFunctionSoNeedsCaching();
});
我在博文中写了一个更详细的例子:caching in Orchard。