我有一個下拉列表,我將一個實體框架調用的結果集填充到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. 緩存linq-to-sql結果?
- 2. PHP&PostgreSQL緩存sql結果
- 3. 緩存SQL結果集
- 4. jquery ajax調用結果緩存問題
- 5. 緩存結果()
- 6. SQL CLR標量函數緩存結果
- 7. 是否SQL語句緩存結果
- 8. 在SQL Server緩存查詢結果Asyncronuosly
- 9. 用Dalli緩存Twitter結果
- 10. 用PHP緩存AJAX結果
- 11. RabbitMQ緩存結果?
- 12. 緩存ajax結果
- 13. 緩存eval()結果
- 14. 緩存結果的功能?
- 15. 緩存XMLHttpRequest的結果?
- 16. 緩存MethodHandles.lookup()的結果?
- 17. Oracle 10g的結果緩存
- 18. 如何停止MVC緩存調用操作方法的結果?
- 19. 如何緩存結果
- 20. 緩存Lucene.net搜索結果
- 21. 緩存SHA1摘要結果?
- 22. 緩存委託結果
- 23. 緩存mysql查詢結果?
- 24. Roles.GetRolesForUser()結果會被緩存
- 25. Rails緩存ActiveRecord結果
- 26. 緩存功能結果f#
- 27. Vue.js緩存方法結果?
- 28. Redis緩存MYSQL結果
- 29. 緩存MySQL結果集
- 30. 緩存<cfstoredproc>結果
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