protected static Expression VisitValueAccessors(IGraphQLType parent, LambdaExpression expression)
        {
            var visitor = new SchemaExpressionVisitor(parent);
            var result  = Expression.Lambda(expression.Body, expression.Parameters[0], visitor.DataReferenceParameter);

            return(visitor.Visit(result));
        }
        public static Expression <Func <TObject, DataReference, T> > VisitValueAccessors <TObject, T>(GraphQLObject parent, Expression <Func <TObject, T> > expression)
            where TObject : GraphQLObject
        {
            var visitor = new SchemaExpressionVisitor(parent);
            var result  = Expression.Lambda <Func <TObject, DataReference, T> >(expression.Body, expression.Parameters[0], visitor.DataReferenceParameter);

            return((Expression <Func <TObject, DataReference, T> >)visitor.Visit(result));
        }