Func简单的缓存委托方法
- C#
- 2021/9/10 14:31:00
- 人已阅读
简介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; });
文章评论
- 消灭零回复