Пример #1
0
        /// <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);
        }
Пример #2
0
 /// <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>);
 }