示例#1
0
        private DataCachingFacade.CachedTable GetCachedTable()
        {
            if (_cachedTable == null)
            {
                lock (this)
                {
                    if (_cachedTable == null)
                    {
                        _cachedTable = new DataCachingFacade.CachedTable(GetOriginalQuery());
                    }
                }
            }

            return(_cachedTable);
        }
示例#2
0
        public CachingQueryable(DataCachingFacade.CachedTable cachedTable, Func <IQueryable> originalQueryGetter)
        {
            _cachedTable = cachedTable;

            _source            = cachedTable.Queryable;
            _currentExpression = Expression.Constant(this);
            _getQueryFunc      = originalQueryGetter;

            if (_source is IEnumerable <T> )
            {
                _innerEnumerable = _source as IEnumerable <T>;
                if (_innerEnumerable is CachingEnumerable <T> )
                {
                    _wrappedEnumerable = _innerEnumerable as CachingEnumerable <T>;
                }
            }
        }