我有一個下拉列表,我將一個實體框架調用的結果集填充到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