缓存asp.net c#的数据列表

时间:2011-02-27 21:43:23

标签: c# asp.net caching

我想实现从db中提取的列表的缓存。我看过这个:

How can I cache objects in ASP.NET MVC?

我的代码中有这个:

var addresses =  repository.GetAllAddresses();//returns IQueryable<string>

使用上面问题中的答案如何缓存这个?,我创建了类CacheExtensions,但不确定从那里开始。

1 个答案:

答案 0 :(得分:4)

一旦你有了扩展方法,使用它就很简单了(不要忘记通过在包含它的命名空间中添加using指令,将已定义GetOrStore方法的静态类带入范围将无法看到GetOrStore<T>扩展方法):

IEnumerable<string> addresses = HttpRuntime
    .Cache
    .GetOrStore<IEnumerable<string>>(
        "addresses", 
        () => repository.GetAllAddresses().ToArray()
);

注意事项:

  • 我们使用“地址”作为缓存键,因此结果将存储在此键下。
  • 我们正在.ToArray()上调用IQueryable<string>,以便急切地获取地址并将结果存储到缓存而不是查询中。