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)); }
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)); }
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)); }
public IQuerySegment GetQuery(ExpressionMapperBase <IQuerySegment> queryMapper, IHasParameters paramsTarget) { return(m_sourceBuilder.ToSegment(queryMapper, paramsTarget)); }