Func简单的缓存委托方法

  • binGe博客
  • C#
  • 2021-9-10 14:31:49
  • 人已阅读
简介CacheHelper类自己找哈,这里就不贴了
   /// <summary>
        /// 从缓存获取数据,分页记录数请在方法自身处缓存
        /// </summary>
        /// <param name="cacheKey"></param>
        /// <param name="FunNoWithPara"></param>
        /// <returns></returns>
        public static dynamic GetDataFromCache(string cacheKey, Func<dynamic> FunNoWithPara)
        {
            var dataResult = CacheHelper.Get(cacheKey);
            if (dataResult != null)
            {
                return dataResult as dynamic;
            }
            //Func有返回值,Action是没返回值的
            var action = new Func<dynamic>(FunNoWithPara);
            var dataResultNew = action();
            CacheHelper.Add(cacheKey, dataResultNew);
            return dataResultNew;
        }
        /// <summary>
        /// 从缓存获取数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="cacheKey"></param>
        /// <param name="FunNoWithPara"></param>
        /// <returns></returns>
        public static T GetDataFromCache<T>(string cacheKey, Func<T> FunNoWithPara) where T : class
        {
            var dataResult = CacheHelper.Get(cacheKey);
            if (dataResult != null)
            {
                return dataResult as T;
            }
            //Func有返回值,Action是没返回值的
            var action = new Func<T>(FunNoWithPara);
            var dataResultNew = action();
            CacheHelper.Add(cacheKey, dataResultNew);
            return dataResultNew;
        }

调用方式:

 //加载评论
            var listMain = GetDataFromCache(thisCaCheKey, () =>
               {
                   var dataResult = FreeSql.Select<HD_KenSay, HD_Users>().LeftJoin(e => e.t1.uid == e.t2.uid).Where(e => e.t1.pagekey == pagekey).OrderByDescending(e => e.t1.addtime).Count(out var total).Page(pageIndex, pageSize).ToList(w => new { say = w.t1, user = w.t2 });
                   count = total;
                   //缓存分页记录数
                   CacheHelper.Add("commentsCount", count);
                   return dataResult;
               });





文章评论

评论
  • 消灭零回复
Top