2011-05-07 59 views
0

我有一個應用程序需要在內存中保留來自數據庫的數據。 有5-6個表格,行數很少,表格很少更新,而且由於應用程序需要非常頻繁地使用這些數據,所以我希望避免所有時間都在每個動作上請求數據庫。 我正在使用Entity Framework 4(linq to entities),它每次查詢都會發送請求。我知道有可能避免使用ToList或...但我需要來自這6個表的信息並且查詢應用聯接。使用EF緩存來自數據庫的數據4

什麼是更好的解決方案。

回答

1

查詢的目的是執行。如果它解決了問題,您可以檢查EF Caching Wrapper,但我不這麼認爲。緩存提供程序緩存實際查詢,因此它足以更改條件並將其視爲另一個查詢。

這應該通過將數據加載到自定義數據結構(列表)並在其上使用Linq-to-objects來完成。

+0

所以再次唯一的選擇似乎是ToList()... – NDeveloper 2011-05-07 19:43:45

0

如果您要將該數據加入其他不適合緩存的數據,我會建議查看您的數據庫引擎功能。大多數高級SQL數據庫都會將這些表放入RAM中。對非緩存數據發出查詢時,您已經會產生網絡延遲開銷。數據庫已經在RAM中已經有了索引。除非你正在談論像圖像或類似的大行。你只需將一小部分處理從一個地方移動到另一個地方。此外,爲了與SQL數據庫一樣高效,不僅需要查找如何緩存,還要緩存索引並編寫代碼以便使用和維護。

儘管如此,在一些使用情況下,這將是非常有用的事情。