2

列固有のSqlCacheDependencyが必要です。

行固有SqlCacheDependencyは有効ですが、列固有にする方法がわかりませんSqlCacheDependency

例:

クエリ:

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

ID=31167の行が変更された場合に通知を発生させます。

しかし、問題は、その行の列のいずれかが変更されるとキャッシュが無効になることですが、ID31167の価格が変更れた場合にのみキャッシュが無効になるようにしたいです

私は長い間それをグーグルで検索しましたが、助けが得られません。

ありがとう

どんな助けでも大歓迎です。

4

1 に答える 1

2

SqlDependency(によって使用されSqlCacheDependencyます)は、列レベルの制御を提供しません。変更通知のセマンティクスは、クエリによって返された、または使用された行が「変更された可能性がある」場合に送信されるというものです。

これが重要な機能である場合は、トリガーとService Brokerを使用して変更通知をキューに入れて配信するか、.NETの古いスタイルのテーブルベースの通知のようにポーリングすることで、自分で実装する必要があります。

もう1つの可能性は、対象の列を別のテーブル(明示的なコピーまたはトリガーで維持されるテーブル)または新しいテーブルにプルして、ビューまたはSPを使用して元のテーブルに結合することです。各行には、関心のある列(およびPK)のみが含まれます。

于 2011-12-03T03:28:56.243 に答える