protected override Expression VisitMember(MemberExpression expression)
        {
            ArgumentUtility.CheckNotNull("expression", expression);

            // MemberExpressions are only evaluatable if they do not involve IQueryable objects.

            if (IsQueryableExpression(expression.Expression))
            {
                _isCurrentSubtreeEvaluatable = false;
            }

            var visitedExpression = base.VisitMember(expression);

            // Testing the parent expression is only required if all children are evaluatable
            if (_isCurrentSubtreeEvaluatable)
            {
                _isCurrentSubtreeEvaluatable = _evaluatableExpressionFilter.IsEvaluatableMember(expression);
            }

            return(visitedExpression);
        }
Beispiel #2
0
        protected override Expression VisitMember(MemberExpression expression)
        {
            if (expression == null)
            {
                throw new ArgumentNullException(nameof(expression));
            }

            // MemberExpressions are only evaluatable if they do not involve IQueryable objects.

            if (IsQueryableExpression(expression.Expression))
            {
                IsCurrentSubtreeEvaluatable = false;
            }

            var visitedExpression = base.VisitMember(expression);

            // Testing the parent expression is only required if all children are evaluatable
            if (IsCurrentSubtreeEvaluatable)
            {
                IsCurrentSubtreeEvaluatable = EvaluatableExpressionFilter.IsEvaluatableMember(expression);
            }

            return(visitedExpression);
        }