Нам нужно вернуть подмножество записей, и для этого мы используем следующую команду:
using (SqlCommand command = new SqlCommand(
"SELECT ID, Name, Flag, IsDefault FROM (SELECT ROW_NUMBER() OVER (ORDER BY @OrderBy DESC) as Row, ID, Name, Flag, IsDefault FROM dbo.Languages) results WHERE Row BETWEEN ((@Page - 1) * @ItemsPerPage + 1) AND (@Page * @ItemsPerPage)",
connection))
Я установил объявление SqlCacheDependency следующим образом:
SqlCacheDependency cacheDependency = new SqlCacheDependency(command);
Но сразу после запуска команды command.ExecuteReader() базовое свойство hasChanged объекта SqlCacheDependency становится истинным, хотя я никак не изменил результат запроса! И из-за этого результат этого запроса не сохраняется в кеше.
HttpRuntime.Cache.Insert( cacheKey, list, cacheDependency, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(AppConfiguration.CacheExpiration.VeryLowActivity));
Это потому, что команда имеет 2 оператора SELECT? Это ROW_NUMBER()? Если да, есть ли другой способ разбить результаты на страницы?
Пожалуйста помоги! После слишком многих часов немного будет высоко оценено! Спасибо