2017-03-18 124 views
1

我想在ASP.Net核心應用中實現緩存。目前我實現的內存緩存使用IMemoryCache,但我想要的是緩存應該失效,如果SQL Server 2016中的相應記錄被更改。我發現它的一種方式SQLCacheDependency但它不是.Net核心的一部分根據this link.Net核心SQL緩存依賴

對此有何想法?

回答

0

現在這個類沒有被遷移到.Net核心,所以你不能輕易管理這樣的邏輯。可能它將成爲.Net標準2.0的一部分,因此您要麼通過CancellationChangeToken執行一些臨時解決方案,而要直接執行sql數據庫檢查(效率非常低)或等待更新。

-1

您可以添加CancellationChangeToken,然後調用取消方法就可以了,這應該從內存中緩存驅逐你的記錄。最重要的是,您可以使用PostEvictionDelegate回調(在緩存記錄被驅逐後觸發其他操作)。 你可以在這裏閱讀更多:https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory

+0

你如何建議調用取消方法?創建一個SQL數據庫的輪詢? – VMAtm

+0

@VMAtm好吧,輪詢是一種方式。但是,考慮到它是一個緩存,應該在實際調用數據庫時驗證緩存(基於緩存失效超時等等,除非總是驗證它是非常重要的) - 如果緩存是未命中,那麼將取消方法作爲存儲庫實現。 –