【问题标题】:SQLCacheDependency with SqlCommand never nullSqlCommand 的 SQLCacheDependency 永远不会为空
【发布时间】:2010-02-11 19:12:58
【问题描述】:

我需要对选择一个值(某些行的最新修改日期)的 sql 选择命令实现缓存依赖。

我的问题是,虽然我更新了内容,当我手动运行查询时,我看到了新的日期,但系统认为它没有改变,也没有刷新内容。

    object Taxonomy = GetTaxonomy();

    string connectionString = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

using (SqlConnection connection = new SqlConnection(connectionString)) {

   AggregateCacheDependency aggregate = new AggregateCacheDependency();
   connection.Open();

   using (SqlCommand command1 = new SqlCommand("select max(taxonomy_date_modified) as LastModified from dbo.taxonomy_tbl where .... ") {

      command1.Parameters.Add(new SqlParameter("@TaxonomyId", SqlDbType.Int));
      command1.Parameters[0].Value = siteTaxId;
      command1.Parameters.Add(new SqlParameter("@TaxonomyLanguage", SqlDbType.Int));
      command1.Parameters[1].Value = LanguageHelper.LanguageCode;                       

      SqlCacheDependency dependency = new SqlCacheDependency(command1);

      object modified_date = command1.ExecuteScalar();
      aggregate.Add(dependency);
    }

    cacheTaxonomy.Add(LanguageHelper.LanguageCode, _Taxonomy);

    HttpContext.Current.Cache.Insert("Taxonomy", cacheTaxonomy, aggregate, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0));

      connection.Close();

【问题讨论】:

    标签: sqlcommand sqlcachedependency


    【解决方案1】:

    您用于依赖的 SQL 无效,您不能使用 MAX()。 SqlCacheDependency 对您可以/不能使用的内容非常挑剔,请参阅MSDN: Special Considerations When Using Query Notifications 了解更多详情

    "...该语句不得使用以下任何聚合函数:AVG、COUNT()、MAX、MIN、STDEV、STDEVP、VAR 或 VARP..."*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-09
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2015-09-09
      • 1970-01-01
      相关资源
      最近更新 更多