ASP.NET中特定于列的SqlCacheDependency
我想要一个特定于列的SqlCacheDependency 行特定的ASP.NET中特定于列的SqlCacheDependency,asp.net,sql-server,sqlcachedependency,Asp.net,Sql Server,Sqlcachedependency,我想要一个特定于列的SqlCacheDependency 行特定的SqlCacheDependency是有效的,但我不知道如何使列特定的SqlCacheDependency 例如: 查询: SELECT [Extent1].[Price] AS [Price] FROM [dbo].[Products] AS [Extent1] where [Extent1].[ID] = 31167 如果ID为31167的行发生更改,则引发通知 但问题是,如果该行的任何列发生更改,缓存将无效,但我希望只
SqlCacheDependency
是有效的,但我不知道如何使列特定的SqlCacheDependency
例如:
查询:
SELECT
[Extent1].[Price] AS [Price]
FROM [dbo].[Products] AS [Extent1]
where [Extent1].[ID] = 31167
如果ID为31167的行发生更改,则引发通知
但问题是,如果该行的任何列发生更改,缓存将无效,但我希望只有ID31167的Price发生更改时,缓存才会无效
我在谷歌上搜索了很长时间,但没有得到任何帮助
谢谢
非常感谢您的帮助。
SqlDependency
(由SqlCacheDependency
使用)不提供列级控制。更改通知的语义是,如果查询返回或使用的行“可能已更改”,则会发送更改通知
如果这对您来说是一个重要的功能,那么您需要自己实现它,可能需要使用触发器和ServiceBroker来排队并传递更改通知,或者像.NET中老式的基于表的通知一样通过轮询
另一种可能是将感兴趣的列拖到一个单独的表(显式副本或使用触发器维护的表)或一个新表中,然后使用视图或SP连接到原始表中。然后,每一行将只包含您感兴趣的列(加上主键)。如何设置
SqlCacheDependency
?从我所读到的内容来看,好像是用SqlCommmand
设置它,就像上面的一样,它可以为您提供列级控制。不是吗?@Tim我正在使用SqlCommand,但它没有给我列级控制,但它可以给我行级控制