Специфичный для столбца SqlCacheDependency в ASP.NET - PullRequest
2 голосов
/ 17 ноября 2011

Я хочу иметь столбец SqlCacheDependency.

Допустимая строка SqlCacheDependency действительна, но я не знаю, как я могу сделать Специфическую для столбца SqlCacheDependency

Пример:

Запрос:

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

вызывает уведомление, если строка с идентификатором = 31167. изменяется.

Но проблема в том, что кеш становится недействительным, если какой-либо из столбцов этой строки изменяется, но я хочу, чтобы кеш становился недействительным, только если Цена ID 31167 была изменена

Я долго гуглял, но мне не помогают.

Спасибо

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 03 декабря 2011

SqlDependency (который используется SqlCacheDependency) не обеспечивает управление на уровне столбца.Семантика уведомлений об изменениях заключается в том, что они отправляются, если строка, возвращенная или использованная запросом, «могла быть изменена».

Если это важная функция для вас, вам необходимо реализовать ее самостоятельно, возможно,использование триггеров и либо Service Broker для постановки в очередь и доставки уведомлений об изменениях, либо с помощью опроса, как с уведомлениями на основе таблиц старого стиля в .NET.отдельная таблица (либо явная копия, либо копия, поддерживаемая с помощью триггеров), либо новая таблица, которую вы затем присоединяете к исходной с представлениями или SP.Каждая строка будет содержать только интересующий вас столбец (плюс PK).

...