我们需要返回记录的子集,为此我们使用以下命令:
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() 指令后,SqlCacheDependency 对象的hasChanged基属性变为 true,尽管我没有以任何方式更改查询结果!并且,正因为如此,此查询的结果不会保存在缓存中。
HttpRuntime.Cache.Insert( cacheKey, list, cacheDependency, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(AppConfiguration.CacheExpiration.VeryLowActivity));
是因为该命令有 2 个 SELECT 语句吗?是 ROW_NUMBER() 吗?如果是,还有其他方法可以对结果进行分页吗?
请帮忙!经过太多小时,一点点将不胜感激!谢谢