/// <exclude />
        public IQueryable CreateQuery(Expression expression)
        {
            if (_currentExpression == expression)
            {
                return(this);
            }

            MethodInfo methodInfo = StoreIdFilterQueryableCache.GetStoreIdFilterQueryableCreateQueryMethodInfo(typeof(T), expression.Type);

            return((IQueryable)methodInfo.Invoke(this, new object[] { expression }));
        }
        /// <exclude />
        IEnumerator IEnumerable.GetEnumerator()
        {
            MethodInfo methodInfo = StoreIdFilterQueryableCache.GetStoreIdFilterQueryableGetEnumeratorMethodInfo(typeof(T));

            return((IEnumerator)methodInfo.Invoke(this, null));
        }
        /// <exclude />
        public object Execute(Expression expression)
        {
            MethodInfo methodInfo = StoreIdFilterQueryableCache.GetStoreIdFilterQueryableExecuteMethodInfo(typeof(T), expression.Type);

            return(methodInfo.Invoke(this, new object[] { expression }));
        }