예제 #1
0
 /// <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)));
예제 #3
0
 private static ElementInit UpdateExpression(this ElementInit elementInit)
 {
     return(elementInit.Update(elementInit.Arguments.Select(item => item.UpdateExpression())));
 }
예제 #4
0
            protected override ElementInit VisitElementInit(ElementInit node)
            {
                var args = VisitArguments(node.AddMethod.GetParameters(), node.Arguments);

                return(node.Update(args));
            }
예제 #5
0
        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)));
        }
예제 #6
0
        protected override ElementInit VisitElementInit(ElementInit node)
        {
            var arguments = Visit(node.Arguments, arg => context.Rewrite(arg, new Converter <Expression, Expression>(Visit)));

            return(node.Update(arguments));
        }
예제 #7
0
        protected override ElementInit VisitElementInit(ElementInit node)
        {
            var arguments = Visit(node.Arguments, arg => context.Rewrite(arg, Visit));

            return(node.Update(arguments));
        }
예제 #8
0
 protected virtual ElementInit VisitElementInit(ElementInit init)
 {
     return(init.Update(init.Arguments.Select(a => Visit(a))));
 }
예제 #9
0
 /// <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)));