public SelectManyLinqExpression(MethodCallExpression node, LinqInitializer init) : base(node, init, ExpressionTypeEx.SelectManyLinq)
        {
            if (node.Arguments.Count == 3)
            {
                var rawResultSelector = GetLambda(node.Arguments[2]);

                ResultSelector = init.Evaluator(Source, rawResultSelector);
            }
        }
        protected ConditionLinqExpression(MethodCallExpression node, LinqInitializer init, ExpressionTypeEx type) : base(node, init, type)
        {
            if (node.Arguments.Count > 1)
            {
                var rawPredicate = GetLambda(node.Arguments[1]);

                Predicate = init.Evaluator(Source, rawPredicate);
            }
        }
示例#3
0
 public TakeLinqExpression(MethodCallExpression node, LinqInitializer init) : base(node, init, ExpressionTypeEx.TakeLinq)
 {
     Count = (ConstantExpression)node.Arguments[1];
 }
示例#4
0
 public AnyLinqExpression(MethodCallExpression node, LinqInitializer init) : base(node, init, ExpressionTypeEx.AnyLinq)
 {
 }
示例#5
0
        public OrderByLinqExpression(MethodCallExpression node, SortDirection direction, LinqInitializer init) : base(node, init, ExpressionTypeEx.OrderByLinq)
        {
            var rawSelector = GetLambda(node.Arguments[1]);

            KeySelector = init.Evaluator(Source, rawSelector);

            SortDirection = direction;

            if (node.Arguments.Count == 3)
            {
                Comparer = node.Arguments[2];
            }
        }
示例#6
0
        protected SelectionLinqExpression(MethodCallExpression node, LinqInitializer init, ExpressionTypeEx type) : base(node, init, type)
        {
            var rawSelector = GetLambda(node.Arguments[1]);

            collectionSelector = init.Evaluator(Source, rawSelector);
        }
示例#7
0
 protected LinqExpression(MethodCallExpression node, LinqInitializer init, ExpressionTypeEx type) : base(type)
 {
     Method = node;
     Source = init.Visitor.Visit(node.Arguments[0]);
 }