Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET中特定于列的SqlCacheDependency_Asp.net_Sql Server_Sqlcachedependency - Fatal编程技术网

ASP.NET中特定于列的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
是有效的,但我不知道如何使列特定的
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,但它没有给我列级控制,但它可以给我行级控制