// ReSharper disable once UnusedMember.Global
        // ReSharper disable once VirtualMemberNeverOverridden.Global
        public virtual TResult ExecuteAsync <TResult>(Expression expression, CancellationToken cancellationToken)
        {
            var decompiled = DecompileExpressionVisitor.Decompile(expression);

            return((TResult)MethodCache <TResult> .ExecuteAsync(AsyncQueryProvider, decompiled, cancellationToken));
        }
        public virtual IAsyncEnumerable <TResult> ExecuteAsync <TResult>(Expression expression)
        {
            var decompiled = DecompileExpressionVisitor.Decompile(expression);

            return((IAsyncEnumerable <TResult>) MethodCache <TResult> .ExecuteAsync(AsyncQueryProvider, decompiled));
        }