缓存一个数据列表asp.net c#
问题描述:
我想实现从db中拉出的列表的缓存。我有一个看看这个:缓存一个数据列表asp.net c#
How can I cache objects in ASP.NET MVC?
我在我的代码有这样的:
var addresses = repository.GetAllAddresses();//returns IQueryable<string>
使用答案的问题上面,我怎么可以缓存这个?我已经创建了类CacheExtensions,但不知道该从哪里去。
答
一旦你有扩展方法,它是一个简单的使用它的事情(不要忘记把你定义的GetOrStore
方法的静态类放入作用域,方法是向包含它的命名空间添加using指令,否则你不会能够看到GetOrStore<T>
扩展方法):
IEnumerable<string> addresses = HttpRuntime
.Cache
.GetOrStore<IEnumerable<string>>(
"addresses",
() => repository.GetAllAddresses().ToArray()
);
注意事项:
- 我们使用的“地址”作为缓存键,因此结果将此项下储存。
- 我们在
IQueryable<string>
上调用.ToArray()
,以便热切地获取地址并将结果存储到缓存中而不是查询。