public SqlWith(ISqlWith <TIn> left, SqlWithType type, Expression <Func <TIn, IFromListItemTarget <TSelect> > > select, Expression <Func <TIn, IFromListItemTarget <TSelect>, IFromListItemTarget <TSelect> > > recursive, Expression <Func <TIn, IFromListItemTarget <TSelect>, TRet> > map) { Left = left; Type = type; Select = select; Recursive = recursive; Map = map; }
/// <summary> /// Agrega un SELECT a la cláusula WITH /// </summary> public static SqlWithFromList <TWith, TOut> Query <TWith, TOut>(this ISqlWith <TWith> with, Expression <Func <TWith, ISqlSelect <TOut> > > select) { var clauseExpr = SqlWith.SubqueryRawSubs(select.Body, select.Parameters[0]); var clause = (ISqlSelect <TOut>)SqlWith.GetSelectFromExpr(clauseExpr); var wi = new WithSelectClause(select.Parameters[0], with); return(new SqlWithFromList <TWith, TOut>(wi, clause)); }
public WithSelectClause(ParameterExpression param, ISqlWith with) { Param = param; With = with; }