SQL调用的缓存结果

时间:2012-02-20 15:43:46

标签: c# caching

我有一个下拉列表,我填充了一个实体框架调用SQL Server数据库的结果集。目前,该调用返回了20条记录,我正在考虑使用缓存。我以前从未为特定控件设置缓存,有人可以指向我的教程。对于那个小数据集,这也有点矫枉过正吗?

2 个答案:

答案 0 :(得分:3)

如果这是ASP.NET,那么执行缓存的最简单方法是使用HttpContext.Current.Cache对象。它会在你的代码中运行这样的东西。您可以找到more information on the Cache class on MSDN

if (HttpContext.Current.Cache.Get("ef_results") == null)
{
    var results = null; // todo: get results from EF
    HttpContext.Current.Cache.Add("ef_results", // cache key
                                  results, // cache value
                                  null, // dependencies
                                  System.Web.Caching.Cache.NoAbsoluteExpiration, // absolute expiration
                                  TimeSpan.FromMinutes(30)); // sliding expiration
}

myDropDown.DataSource = HttpContext.Current.Cache.Get("ef_results");

如果这是WPF / WinForms,那么最简单的方法就是向类中添加一个静态字段,并使用与上面相同的逻辑在该静态字段中“缓存”EF查询的结果。

答案 1 :(得分:0)

如果您需要在服务器场中分发缓存,可以考虑实施二级缓存。

EF 2nd Level Cache