/// <summary> /// Sorts the data which defined property as descending (can be applied multiple times) /// </summary> /// <typeparam name="T">The type of entity class</typeparam> /// <param name="query">The query which applied to SQL</param> /// <param name="expression">Sorting expression</param> /// <returns></returns> public static IQuery <T> SortByDesc <T>(this IQuery <T> query, Expression <Func <T, object> > expression) { if (query.OrderByDescendingStatement.Length > 0) { query.OrderByDescendingStatement.Append(", "); } var orderByExpressions = ExpressionUtil.GetOrderByExpression <T>(expression.Body); query.OrderByDescendingStatement.Append(orderByExpressions.MemberName); query.OrderByDescendingStatement.Append(" DESC"); return(query); }
/// <summary> /// Sorts the data which defined property as ascending (can be applied multiple times) /// </summary> /// <typeparam name="T">The type of entity class</typeparam> /// <param name="query">The query which applied to SQL</param> /// <param name="expression">Sorting expression</param> /// <returns></returns> public static IQuery <T> SortBy <T>(this IQuery <T> query, Expression <Func <T, object> > expression) { if (query.OrderByAscendingStatement.Length > 0) { query.OrderByAscendingStatement.Append(", "); } var orderByExpressions = ExpressionUtil.GetOrderByExpression <T>(expression.Body); string orderByStatement = typeof(T).Name.ToLower() + "." + orderByExpressions.MemberName + " ASC"; query.OrderByAscendingStatement.Append(orderByStatement); return(query); }