예제 #1
0
        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);
            }
        }
예제 #2
0
        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 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];
            }
        }
예제 #4
0
        protected SelectionLinqExpression(MethodCallExpression node, LinqInitializer init, ExpressionTypeEx type) : base(node, init, type)
        {
            var rawSelector = GetLambda(node.Arguments[1]);

            collectionSelector = init.Evaluator(Source, rawSelector);
        }