【发布时间】:2011-03-17 23:11:22
【问题描述】:
我的 Web 应用程序正在使用 asp.net 缓存对象来存储数据库中的数据。我正在寻找一种优雅的使缓存对象无效的方法,但还没有想出任何优雅的方法。
通过跟踪它们的缓存键,很容易使单个记录或单个表中所有记录的列表无效。但是,我可能有任意数量的表数据子集列表。当该记录更改时,我只想使包含特定记录的列表的缓存记录无效。如果只有一个列表包含该记录,我不想使该表的所有数据列表无效。
我已经尝试过 SqlDependency 并且对它不满意,因为我遇到了很多问题。你知道如何解决这个问题吗?提前致谢!
【问题讨论】:
-
只是想知道,您的失效标准是什么?按时间还是您检查数据库是否有上次更新等?
-
如果你偶然使用 EF,你可以使用它 - archive.msdn.microsoft.com/EFProviderWrappers - 它是你数据上下文的包装器,并自动为你处理缓存
-
@rushonerok,我现在用的是Linq to SQL,不是实体框架,不过看起来很酷,谢谢分享!
-
@winfred,我可以随时对记录进行更新,因为所有更改都将在同一个应用程序中进行