예제 #1
0
        /// <summary>
        /// 获取角色表,从缓存读取
        /// </summary>
        public static List <BaseRoleEntity> GetObjectList()
        {
            System.Web.Caching.Cache cache = HttpRuntime.Cache;
            string tableName = BaseSystemInfo.SystemCode + "Role";

            if (cache != null && cache[tableName] == null)
            {
                lock (BaseSystemInfo.UserLock)
                {
                    if (cache != null && cache[tableName] == null)
                    {
                        // 读取目标表中的数据
                        List <BaseRoleEntity> entityList = null;
                        BaseRoleManager       manager    = new DotNet.Business.BaseRoleManager(tableName);
                        entityList = manager.GetList <BaseRoleEntity>();
                        // 这个是没写过期时间的方法
                        // HttpContext.Current.Cache[tableName] = entityList;
                        // 设置过期时间为8个小时,第2天若有不正常的自动就可以正常了
                        // HttpContext.Current.Cache.Add(BaseRoleEntity.TableName, entityList, null, DateTime.Now.AddHours(8), TimeSpan.Zero, CacheItemPriority.Normal, null);
                        cache.Add(tableName, entityList, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero, CacheItemPriority.Normal, null);
                    }
                }
            }
            // return HttpContext.Current.Cache[BaseRoleEntity.TableName] as List<BaseRoleEntity>;
            return(cache[tableName] as List <BaseRoleEntity>);
        }
예제 #2
0
        /// <summary>
        /// 从缓存获取获取实体
        /// </summary>
        /// <param name="id">主键</param>
        public static BaseRoleEntity GetObjectByCache(string systemCode, string id)
        {
            if (string.IsNullOrWhiteSpace(systemCode))
            {
                systemCode = "Base";
            }

            BaseRoleEntity result = null;

            System.Web.Caching.Cache cache = HttpRuntime.Cache;
            string cacheObject             = systemCode + "Role";

            if (!string.IsNullOrEmpty(id))
            {
                cacheObject = systemCode + "Role" + id;
            }
            if (cache != null && cache[cacheObject] == null)
            {
                lock (locker)
                {
                    if (cache != null && cache[cacheObject] == null)
                    {
                        BaseRoleManager manager = new DotNet.Business.BaseRoleManager(BaseRoleEntity.TableName);
                        result = manager.GetObject(id);
                        // 若是空的不用缓存,继续读取实体
                        if (result != null)
                        {
                            cache.Add(cacheObject, result, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero, CacheItemPriority.Normal, null);
                            System.Console.WriteLine(System.DateTime.Now.ToString(BaseSystemInfo.DateTimeFormat) + " cache " + systemCode + " Role " + id);
                        }
                    }
                }
            }
            result = cache[cacheObject] as BaseRoleEntity;
            return(result);
        }