C# ASP.NET数据缓存及其失效方法

C# ASP.NET数据缓存及其失效方法,c#,asp.net,caching,C#,Asp.net,Caching,我的web应用程序正在使用asp.net缓存对象存储数据库中的数据。我正在寻找一个优雅的缓存对象无效,但还没有拿出任何优雅的 通过跟踪缓存键,很容易使单个记录或单个表中所有记录的列表无效。但是,我可以有任意数量的表数据子集列表。我只想在包含特定记录的列表的缓存记录发生更改时使其无效。如果只有一个列表包含该记录,我不想使该表的所有数据列表无效 我尝试过SqlDependency,但不满意,因为我遇到了很多问题。你知道如何解决这个问题吗?提前谢谢 创建一个静态字典 该键将使用类似于table_pri

我的web应用程序正在使用asp.net缓存对象存储数据库中的数据。我正在寻找一个优雅的缓存对象无效,但还没有拿出任何优雅的

通过跟踪缓存键,很容易使单个记录或单个表中所有记录的列表无效。但是,我可以有任意数量的表数据子集列表。我只想在包含特定记录的列表的缓存记录发生更改时使其无效。如果只有一个列表包含该记录,我不想使该表的所有数据列表无效


我尝试过SqlDependency,但不满意,因为我遇到了很多问题。你知道如何解决这个问题吗?提前谢谢

创建一个静态
字典

该键将使用类似于table_primarykey的命名方案,它表示一条记录

该值是缓存记录的缓存键名称的列表


这将使您能够有效地找到缓存在何处的记录,允许您在从缓存中添加和删除项(使用回调)的同时管理字典。

创建静态
字典

该键将使用类似于table_primarykey的命名方案,它表示一条记录

该值是缓存记录的缓存键名称的列表


这将使您能够有效地找到缓存在何处的记录,允许您在从缓存中添加和删除项(使用回调)的同时管理字典。

只是想知道,您的失效标准是什么?按时间或检查数据库是否有上次更新等?如果您碰巧使用了EF,您可以使用它--它是数据上下文的包装器,可以自动为数据上下文处理缓存you@rushonerok,现在我正在使用LINQtoSQL,而不是实体框架,但这看起来很酷,谢谢分享@winfred,我可以随时对记录进行更新,因为所有更改都将在同一个应用程序中进行。只是想知道,您的失效标准是什么?按时间或检查数据库是否有上次更新等?如果您碰巧使用了EF,您可以使用它--它是数据上下文的包装器,可以自动为数据上下文处理缓存you@rushonerok,现在我正在使用LINQtoSQL,而不是实体框架,但这看起来很酷,谢谢分享@winfred,我可以在任何时候对记录进行更新时使其无效,因为所有更改都将在同一个应用程序中进行,以获得建议和好主意!这不是我所希望的优雅的解决方案,因为我仍然需要为我缓存的每个记录提取主键列表,但出于我的目的,它应该工作得很好。谢谢你的建议和好主意!这并不像我所希望的那样优雅,因为我仍然需要为缓存的每个记录提取主键列表,但出于我的目的,它应该工作得很好。