我有一个下拉列表,我将一个实体框架调用的结果集填充到SQL Server数据库。目前,该调用返回了20条记录,我正在考虑使用缓存。我从来没有为特定的控件设置缓存,有人可以指点我的教程。对于那个小数据集,这是否也有点矫枉过正?SQL调用的缓存结果
回答
如果这是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如果查询结果不需要由不同的节点分发/失效,这会让你出了一个洞。 – 2012-02-20 16:07:23
伟大的东西在这里 – 2012-02-20 16:12:53
请注意,如果您使用NLB并且想要刷新www aplication上的缓存,那么它只会在NLB重定向您的服务器上刷新。有选项可以重新启动IIS或等待滑动过期,并且将刷新所有www应用程序上的缓存。 – Svmurvj 2015-06-30 11:26:50
如果您需要在服务器场中分配高速缓存,则可以考虑实施二级高速缓存。
- 1. Memcached/XCache缓存SQL结果?
- 2. 缓存linq-to-sql结果?
- 3. 缓存SQL结果集
- 4. PHP&PostgreSQL缓存sql结果
- 5. 如何缓存API调用的结果?
- 6. 在一个Ajax调用缓存结果
- 7. jquery ajax调用结果缓存问题
- 8. 缓存结果()
- 9. SQL CLR标量函数缓存结果
- 10. 是否SQL语句缓存结果
- 11. 如何缓存LINQ to SQL结果?
- 12. 在SQL Server缓存查询结果Asyncronuosly
- 13. 用Dalli缓存Twitter结果
- 14. 用PHP缓存AJAX结果
- 15. RabbitMQ缓存结果?
- 16. 缓存LINQ结果
- 17. 缓存eval()结果
- 18. 缓存ajax结果
- 19. 缓存结果的功能?
- 20. 缓存XMLHttpRequest的结果?
- 21. 缓存MethodHandles.lookup()的结果?
- 22. Oracle 10g的结果缓存
- 23. 如何使用requireJs缓存获取调用的结果?
- 24. 从GeoPlugin缓存IP结果PHP结果
- 25. 如何将缓存中的sql查询结果保存到另一个缓存
- 26. 缓存调用Web服务的CLR UDF的结果
- 27. 缓存GET调用的RESTful API结果的最佳方式
- 28. SQL Server存储过程缓存更新后的旧结果
- 29. 使用Memcached缓存Model :: find()的结果
- 30. Do Net:HTTP调用/ Rails中的结果是否被缓存?
ASP.NET?的WinForms? WPF? – BrokenGlass 2012-02-20 15:45:51
http://deanhume.com/Home/BlogPost/object-caching-net-4/37像样的文章 – Joe 2012-02-20 15:46:10