1
我有一個Order
對象的列表。C#ASP.NET - 緩存需要搜索/排序的對象列表?
這些對象在我的應用程序的多個用戶之間共享,並且在經常訪問時更改很少,這使得它們成爲緩存的理想候選者。
我面臨的問題是,我對我的MSSQL數據庫進行了排序和搜索的LINQ查詢 - 但是如果我將它們保存在緩存中,我該如何做?我不想重複代碼(幹!)。
我有一個Order
對象的列表。C#ASP.NET - 緩存需要搜索/排序的對象列表?
這些對象在我的應用程序的多個用戶之間共享,並且在經常訪問時更改很少,這使得它們成爲緩存的理想候選者。
我面臨的問題是,我對我的MSSQL數據庫進行了排序和搜索的LINQ查詢 - 但是如果我將它們保存在緩存中,我該如何做?我不想重複代碼(幹!)。
在我看來,你必須做這樣的事情
因此,在第一次調用完成後,您的緩存集合會被查詢,但由於它仍然是空的,所以您去取所有對象(當然這取決於數據量),然後一次數據存儲在內存中,您的LINQ查詢將在其上執行。
後續調用不會觸及數據庫,只會觸發緩存的集合。
您必須注意有線程安全訪問您的收藏。此外,您可能會包含一些刷新間隔,基本上是以某些固定間隔刷新緩存的時間戳。