Exemple #1
0
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters paramTarget)
        {
            var subject  = queryMapper.Map(expression.Arguments[0]);
            var itemsLst = ExpressionEvaluator.Eval(expression.Arguments[1]) as IEnumerable;

            return(new InCsvSegment(subject, itemsLst));
        }
Exemple #2
0
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters paramTarget)
        {
            var operand = queryMapper.Map(expression.Arguments[0]);

            var builtSubquery = ExpressionEvaluator.Eval(expression.Arguments[1]) as ITransformedQuery;

            return(new InSubquerySegment(operand, builtSubquery.GetQuery(queryMapper, paramTarget)));
        }
        public IQuerySegment Map(MethodCallExpression expression, ExpressionMapperBase <IQuerySegment> queryMapper, Type resultingTableType, IHasParameters p)
        {
            if (expression.Arguments.Count != 2)
            {
                throw new InvalidOperationException("Two arguments required");
            }

            var l = queryMapper.Map(expression.Arguments[0]);
            var r = queryMapper.Map(expression.Arguments[1]);

            return(new LikeSegment(l, r));
        }
Exemple #4
0
        public IQuerySegment ToSegment(ExpressionMapperBase <IQuerySegment> queryMapper, IHasParameters paramsTarget)
        {
            var model     = Build();
            var queryText = m_owner.GetQueryText(model, this);

            foreach (var p in m_parameters)
            {
                paramsTarget.AddParameter(p.Key, p.Value);
            }

            return(new SubquerySegment(queryText));
        }
Exemple #5
0
 public IQuerySegment GetQuery(ExpressionMapperBase <IQuerySegment> queryMapper, IHasParameters paramsTarget)
 {
     return(m_sourceBuilder.ToSegment(queryMapper, paramsTarget));
 }