【问题标题】:Column Specific SqlCacheDependency in ASP.NETASP.NET 中的列特定 SqlCacheDependency
【发布时间】:2011-12-06 07:48:37
【问题描述】:

我想要一个特定于列的 SqlCacheDependency。

行特定SqlCacheDependency 有效,但我不知道如何使列特定SqlCacheDependency

例子:

查询:

SELECT 
[Extent1].[Price] AS [Price] 
FROM [dbo].[Products] AS [Extent1]
where [Extent1].[ID] = 31167

如果 ID = 31167 的行发生更改,则会发出通知。

但问题是,如果该行的任何列被更改,缓存就会失效,但我希望缓存只有在 IDPrice 31167 时才会失效变身

我用谷歌搜索了很长时间,但没有得到任何帮助。

谢谢

感谢任何帮助。

【问题讨论】:

  • 您如何设置SqlCacheDependency?从我读过的内容来看,似乎使用SqlCommmand 设置它就像上面的那样会给你列级控制。不是这样吗?
  • @Tim 我正在使用 SqlCommand 但它没有给我列级控制,但它可以给我行级控制

标签: asp.net sql-server sqlcachedependency


【解决方案1】:

SqlDependency(由SqlCacheDependency 使用)不提供列级控制。更改通知的语义是,如果查询返回或使用的行“可能已更改”,则发送它们。

如果这对您来说是一个重要功能,您需要自己实现它,可能使用触发器和服务代理来排队和传递更改通知,或者通过轮询与 .网。

另一种可能是将您感兴趣的列拉到一个单独的表(显式副本或使用触发器维护的一个)或一个新表中,然后您将其与视图或 SP 连接到原始表。然后,每一行将只包含您感兴趣的列(加上 PK)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多