/// <summary> /// Visits the children of the <see cref="ElementInit" />. /// </summary> /// <param name="node">The expression to visit.</param> /// <returns>The modified expression, if it or any subexpression was modified; /// otherwise, returns the original expression.</returns> protected virtual ElementInit VisitElementInit(ElementInit node) { return(node.Update(Visit(node.Arguments))); }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> protected override ElementInit VisitElementInit(ElementInit elementInit) => elementInit.Update(elementInit.Arguments.Select(e => MatchTypes(Visit(e), e.Type)));
private static ElementInit UpdateExpression(this ElementInit elementInit) { return(elementInit.Update(elementInit.Arguments.Select(item => item.UpdateExpression()))); }
protected override ElementInit VisitElementInit(ElementInit node) { var args = VisitArguments(node.AddMethod.GetParameters(), node.Arguments); return(node.Update(args)); }
public void UpdateDifferentNumberArgumentsDifferetInstanceReturned() { ElementInit init = Expression.ElementInit(typeof(List <int>).GetMethod("Add"), Expression.Constant(0)); Assert.NotSame(init, init.Update(Enumerable.Repeat(Expression.Constant(1), 1))); }
protected override ElementInit VisitElementInit(ElementInit node) { var arguments = Visit(node.Arguments, arg => context.Rewrite(arg, new Converter <Expression, Expression>(Visit))); return(node.Update(arguments)); }
protected override ElementInit VisitElementInit(ElementInit node) { var arguments = Visit(node.Arguments, arg => context.Rewrite(arg, Visit)); return(node.Update(arguments)); }
protected virtual ElementInit VisitElementInit(ElementInit init) { return(init.Update(init.Arguments.Select(a => Visit(a)))); }
/// <summary> /// Visits the children of the <see cref="ElementInit"/>. /// </summary> /// <param name="node">The expression to visit.</param> /// <returns>The modified expression, if it or any subexpression was modified; /// otherwise, returns the original expression.</returns> protected override ElementInit VisitElementInit(ElementInit node) { return(node.Update(Visit(node.Arguments))); }
protected virtual ElementInit VisitElementInit(ElementInit node, Type expectedType) => node.Update(node.Arguments.Zip(node.AddMethod.GetParameters(), (arg, param) => Visit(arg, param.ParameterType)));