public Expression BindParameter(ParameterExpression parameter, Dictionary <Expression, Expression> processedExpressions) { Expression value; if (processedExpressions.TryGetValue(this, out value)) { return(value); } var result = new LocalCollectionExpression(Type, MemberInfo, SourceExpression); processedExpressions.Add(this, result); result.Fields = Fields.ToDictionary(f => f.Key, f => (IMappedExpression)f.Value.BindParameter(parameter, processedExpressions)); return(result); }
public Expression Remap(int[] map, Dictionary <Expression, Expression> processedExpressions) { if (!CanRemap) { return(this); } Expression value; if (processedExpressions.TryGetValue(this, out value)) { return(value); } var result = new LocalCollectionExpression(Type, MemberInfo, SourceExpression); processedExpressions.Add(this, result); result.Fields = Fields.ToDictionary(f => f.Key, f => (IMappedExpression)f.Value.Remap(map, processedExpressions)); return(result); }