创建启用了缓存的Orchard CMS小部件/模块

时间:2013-09-26 14:57:41

标签: caching orchardcms orchardcms-1.6

我一直在寻找高低,但似乎找不到合适的答案。

我一直在Orchard中编写一个模块以及我用它的一些小部件,现在我想在我的类中启用数据库查询的缓存。

是否有关于如何向模块和小部件添加缓存的文档?

我试图只启用输出缓存和syscache,但它似乎只适用于Orchard附带的模块(我使用SQL Server Profiler检查过,我的查询仍然一直被发送到数据库,而正常的Orchard查询内容等,并没有,似乎是缓存的。)

1 个答案:

答案 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