public bool VisitExprOrderBy(ExprOrderBy expr, TCtx arg) { var res = this.Visit(expr, "OrderBy", arg, out var argOut) && this.Accept("OrderList", expr.OrderList, argOut); this._visitor.EndVisitExpr(expr, arg); return(res); }
protected ISelectBuilder OrderByInternal(ExprOrderBy orderBy) { if (this._orderBy.HasValue) { throw new SqExpressException("Order has already been set"); } this._orderBy = new OrderByStorage(null, orderBy); return(this); }
public void AddOrderBy_Basic() { var tUser = Tables.User(); var tCustomer = Tables.Customer(); var originalExpr = Select(tUser.UserId).From(tUser).Union(Select(tCustomer.UserId).From(tCustomer)).Done(); var withOrderBy = originalExpr.AddOrderBy(tUser.FirstName); var expected = "SELECT [A0].[UserId] FROM [dbo].[user] [A0] UNION SELECT [A1].[UserId] FROM [dbo].[Customer] [A1] ORDER BY [A0].[FirstName]"; Assert.AreEqual(expected, withOrderBy.ToSql()); ExprOrderBy orderBy = tUser.FirstName; withOrderBy = originalExpr.AddOrderBy(orderBy); expected = "SELECT [A0].[UserId] FROM [dbo].[user] [A0] UNION SELECT [A1].[UserId] FROM [dbo].[Customer] [A1] ORDER BY [A0].[FirstName]"; Assert.AreEqual(expected, withOrderBy.ToSql()); }
public static ExprSelect WithOrderBy(this ExprSelect original, ExprOrderBy newOrderBy) => new ExprSelect(selectQuery: original.SelectQuery, orderBy: newOrderBy);
public static ExprOrderBy WithOrderList(this ExprOrderBy original, IReadOnlyList <ExprOrderByItem> newOrderList) => new ExprOrderBy(orderList: newOrderList);
public ISelectBuilder OrderBy(ExprOrderBy orderBy) => this.OrderByInternal(orderBy);
public ISelectBuilder OrderBy(ExprOrderBy orderBy) { return(this.OrderByInternal(orderBy)); }
public bool VisitExprOrderBy(ExprOrderBy exprOrderBy, IExpr?parent) { this.AcceptListComaSeparated(exprOrderBy.OrderList, exprOrderBy); return(true); }
public static ExprSelect AddOrderBy(this IExprSubQuery original, ExprOrderBy orderBy) { orderBy.OrderList.AssertNotEmpty("Order item list cannot be empty"); return(new ExprSelect(original, orderBy)); }