我正在尝试在 ASP.Net 核心应用程序中实现缓存。目前我已经实现的是内存缓存使用IMemoryCache
,但我想要的是如果 SQL Server 2016 中的相应记录发生更改,缓存应该失效。我找到它的一种方法,但根据此链接SQLCacheDependency
,它不是.Net Core的一部分
对此有什么想法吗?
我正在尝试在 ASP.Net 核心应用程序中实现缓存。目前我已经实现的是内存缓存使用IMemoryCache
,但我想要的是如果 SQL Server 2016 中的相应记录发生更改,缓存应该失效。我找到它的一种方法,但根据此链接SQLCacheDependency
,它不是.Net Core的一部分
对此有什么想法吗?
现在这个类还没有迁移到.Net Core,所以你不能轻易地管理出这样的逻辑。可能它将成为 .Net Standard 2.0 的一部分,因此您可以CancellationChangeToken
使用直接 sql 数据库检查(效率非常低)来实施一些临时解决方案,或者等待更新。
您可以添加 CancellationChangeToken 然后在其上调用 Cancel 方法,这应该会从内存缓存中清除您的记录。最重要的是,您可以使用 PostEvictionDelegate 回调(在缓存记录被驱逐后触发其他操作)。您可以在此处阅读更多信息:https ://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory