public virtual IQueryable <T> GetObject <T>(bool useSameContext = false) where T : BaseObject { string entity = typeof(T).Name; if (CacheList.Contains(entity)) { object data = _cachemanager.GetData(entity); if (data == null) { lock (_sync) { if (data == null) { data = _context.GetObjectSet <T>().ToList().AsQueryable(); _cachemanager.AddData(entity, data); } } } return(data as IQueryable <T>); } else { if (!useSameContext) { _context = new StudentMonitoringEntities(); } return(_context.GetObjectSet <T>() as IQueryable <T>); } }