1

我一直在为此寻找高低,但似乎找不到正确的答案。

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

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

我试图只启用输出缓存和系统缓存,但它似乎只适用于 Orchard 附带的模块(我检查了 SQL Server Profiler,我的查询仍然一直发送到数据库,而对内容等的普通 Orchard 查询则没有,并且似乎被缓存了)。

4

1 回答 1

0

您可以使用 ICacheManager。

将 ICacheManager 的实例注入您的构造函数,然后在您的方法中,您可以使用以下方法缓存一个值:

var myCachedValue = _cacheManager.Get("My-Value-Cache-Key", ctx => {
    ctx.Monitor(_clock.When(TimeSpan.FromMinutes(20)));
    return SlowFunctionSoNeedsCaching();
});

我在我的博客文章中写了一个更详细的示例:在 Orchard 中缓存

于 2013-09-27T09:43:00.213 回答