protected override Expression VisitMethodCallExpression(MethodCallExpression methodCallExpression) { var newExpression = (MethodCallExpression)base.VisitMethodCallExpression(methodCallExpression); if (newExpression != methodCallExpression && newExpression.Arguments.Count > 0 && newExpression.Arguments[0].Type == typeof(IValueReader)) { return (_queryModelVisitor .BindMethodCallToValueReader(methodCallExpression, newExpression.Arguments[0]) ?? newExpression); } return(_queryModelVisitor .BindMethodCallExpression( methodCallExpression, (property, _) => Expression.Call( _getValueMethodInfo.MakeGenericMethod(newExpression.Method.GetGenericArguments()[0]), QueryContextParameter, newExpression.Arguments[0], Expression.Constant(property))) ?? newExpression); }
protected override Expression VisitMethodCallExpression(MethodCallExpression methodCallExpression) { var newExpression = base.VisitMethodCallExpression(methodCallExpression); _queryModelVisitor .BindMethodCallExpression( methodCallExpression, (property, querySource) => _querySources[querySource]--); return(newExpression); }