internal static Expression Replace(LambdaExpression query, ObjectContext objectContext, object[] parameterValues)
            {
                var parameterLookup = query
                                      .Parameters
                                      .Skip(1)
                                      .Zip(parameterValues)
                                      .ToDictionary(pair => pair.Key, pair => pair.Value);

                parameterLookup.Add(query.Parameters.First(), objectContext);
                var replacer = new CreateDonateableExpressionVisitor(parameterLookup);

                return(replacer.Visit(query.Body));
            }
 internal static Expression Replace(LambdaExpression query, ObjectContext objectContext, object[] parameterValues)
 {
     var parameterLookup = query
         .Parameters
         .Skip(1)
         .Zip(parameterValues)
         .ToDictionary(pair => pair.Key, pair => pair.Value);
     parameterLookup.Add(query.Parameters.First(), objectContext);
     var replacer = new CreateDonateableExpressionVisitor(parameterLookup);
     return replacer.Visit(query.Body);
 }