/// <summary> /// 从缓存获取获取实体 /// </summary> /// <param name="id">主键</param> public static BaseUserEntity GetObjectByCache(string id) { BaseUserEntity result = null; System.Web.Caching.Cache cache = HttpRuntime.Cache; string cacheObject = "User"; if (!string.IsNullOrEmpty(id)) { cacheObject = "User" + id; } if (cache == null || cache[cacheObject] == null) { BaseUserManager manager = new DotNet.Business.BaseUserManager(BaseUserEntity.TableName); result = manager.GetObject(id); // 若是空的不用缓存,继续读取实体 if (result != null) { cache.Add(cacheObject, result, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero, CacheItemPriority.Normal, null); // System.Console.WriteLine(System.DateTime.Now.ToString(BaseSystemInfo.DateTimeFormat) + " cache User " + id); } } result = cache[cacheObject] as BaseUserEntity; return(result); }
/// <summary> /// 获取用户表,从缓存读取 /// </summary> public static List <BaseUserEntity> GetEntities() { if (HttpContext.Current.Session == null || HttpContext.Current.Cache[BaseUserEntity.TableName] == null) { lock (BaseSystemInfo.UserLock) { if (HttpContext.Current.Session == null || HttpContext.Current.Cache[BaseUserEntity.TableName] == null) { // 读取目标表中的数据 List <BaseUserEntity> entityList = null; BaseUserManager manager = new DotNet.Business.BaseUserManager(BaseUserEntity.TableName); entityList = manager.GetList <BaseUserEntity>(); // 这个是没写过期时间的方法 // HttpContext.Current.Cache[tableName] = entityList; // 设置过期时间为8个小时,第2天若有不正常的自动就可以正常了 HttpContext.Current.Cache.Add(BaseUserEntity.TableName, entityList, null, DateTime.Now.AddHours(8), TimeSpan.Zero, CacheItemPriority.Normal, null); } } } return(HttpContext.Current.Cache[BaseUserEntity.TableName] as List <BaseUserEntity>); }