/// <summary> /// Creates a <see cref="DbOrderByExpression"/> that represents ordering the result set. /// </summary> /// <param name="dbSelectQuery">The target <see cref="DbQuery{TQueryExpression}"/>.</param> /// <param name="expressionSelector">A function used to specify an element in the 'ORDER BY' clause.</param> /// <param name="orderByExpressionType">Specifies the sort order direction.</param> /// <returns></returns> public static DbQuery<DbSelectExpression> OrderBy(this DbQuery<DbSelectExpression> dbSelectQuery, Func<DbExpressionFactory, DbExpression> expressionSelector, DbOrderByExpressionType orderByExpressionType) { var dbExpression = (DbExpression)DbExpressionFactory.MakeOrderBy(orderByExpressionType, expressionSelector(DbExpressionFactory)); if (!dbSelectQuery.QueryExpression.OrderByExpression.IsNull()) dbExpression = DbExpressionFactory.List(new[] { dbSelectQuery.QueryExpression.FromExpression, dbExpression }); dbSelectQuery.QueryExpression.OrderByExpression = dbExpression; return dbSelectQuery; }
/// <summary> /// Creates a new <see cref="DbOrderByExpression"/> that represents ordering the result set. /// </summary> /// <param name="orderByExpressionType">The <see cref="DbOrderByExpressionType"/> that specifies the ordering direction.</param> /// <param name="expression">The <see cref="DbExpression"/> representing an element in the 'ORDER BY' clause.</param> /// <returns>A <see cref="DbOrderByExpression"/> instance.</returns> public DbOrderByExpression MakeOrderBy(DbOrderByExpressionType orderByExpressionType, DbExpression expression) { var dbOrderByExpression = new DbOrderByExpression { OrderByExpressionType = orderByExpressionType, Expression = expression }; return dbOrderByExpression; }
/// <summary> /// Creates a <see cref="DbOrderByExpression"/> that represents ordering the result set. /// </summary> /// <param name="dbSelectQuery">The target <see cref="DbQuery{TQueryExpression}"/>.</param> /// <param name="expressionSelector">A function used to specify an element in the 'ORDER BY' clause.</param> /// <param name="orderByExpressionType">Specifies the sort order direction.</param> /// <returns></returns> public static DbQuery <DbSelectExpression> OrderBy(this DbQuery <DbSelectExpression> dbSelectQuery, Func <DbExpressionFactory, DbExpression> expressionSelector, DbOrderByExpressionType orderByExpressionType) { var dbExpression = (DbExpression)DbExpressionFactory.MakeOrderBy(orderByExpressionType, expressionSelector(DbExpressionFactory)); if (!dbSelectQuery.QueryExpression.OrderByExpression.IsNull()) { dbExpression = DbExpressionFactory.List(new[] { dbSelectQuery.QueryExpression.OrderByExpression, dbExpression }); } dbSelectQuery.QueryExpression.OrderByExpression = dbExpression; return(dbSelectQuery); }