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