我有一个下拉列表,我填充了一个实体框架调用SQL Server数据库的结果集。目前,该调用返回了20条记录,我正在考虑使用缓存。我以前从未为特定控件设置缓存,有人可以指向我的教程。对于那个小数据集,这也有点矫枉过正吗?
答案 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)
如果您需要在服务器场中分发缓存,可以考虑实施二级缓存。