C# 缓存SQL调用的结果
我有一个下拉列表,其中包含对SQL Server数据库的实体框架调用的结果集。目前,该调用返回了20条记录,我正在考虑使用缓存。我以前从未为特定控件设置过缓存,有人能给我指一下教程吗。对于那个小数据集来说,这也是一种过度杀伤力吗?如果这是ASP.NET,那么最简单的缓存方法就是使用HttpContext.Current.Cache对象。在您的代码中,它会像这样工作。你可以找到C# 缓存SQL调用的结果,c#,caching,C#,Caching,我有一个下拉列表,其中包含对SQL Server数据库的实体框架调用的结果集。目前,该调用返回了20条记录,我正在考虑使用缓存。我以前从未为特定控件设置过缓存,有人能给我指一下教程吗。对于那个小数据集来说,这也是一种过度杀伤力吗?如果这是ASP.NET,那么最简单的缓存方法就是使用HttpContext.Current.Cache对象。在您的代码中,它会像这样工作。你可以找到 如果这是WPF/WiFrm,那么最简单的方法就是将一个静态字段添加到你的类中,并使用与上面相同的逻辑缓存你的EF查询的结
如果这是WPF/WiFrm,那么最简单的方法就是将一个静态字段添加到你的类中,并使用与上面相同的逻辑缓存你的EF查询的结果。
< P>如果你需要在一个农场中分配缓存,你可以考虑实现一个第二级缓存。Delegate article+1如果查询结果不需要由不同的节点分发/失效,这将使您摆脱困境。如果您使用NLB-并希望刷新www应用程序上的缓存,请小心,因为它将仅在NLB重定向您的服务器上刷新。可以选择重新启动IIS或等待滑动过期,这将刷新所有www应用程序上的缓存。
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");