DynamicWhere.ex
DynamicWhere.exv2.1.0·docs

.Order<T>(...)

Sorts the query by one or multiple OrderBy criteria. Two overloads are available — one for a single criterion, one for a list.

Single overload

public static IQueryable<T> Order<T>(this IQueryable<T> query, OrderBy order)
    where T : class

List overload

public static IQueryable<T> Order<T>(this IQueryable<T> query, List<OrderBy> orders)
    where T : class
ParameterTypeDescription
order / ordersOrderBy / List<OrderBy>Sort criteria. Each entry's Sort determines priority (lower = first).

Validations

  • Field must be non-empty and valid on T (case-insensitive, auto-normalized).

Returns

IQueryable<T> — ordered query.

Example — single order

var ordered = dbContext.Products.Order(new OrderBy
{
    Sort = 1,
    Field = "CreatedAt",
    Direction = Direction.Descending
});
{
  "sort": 1,
  "field": "CreatedAt",
  "direction": "Descending"
}

Example — multiple orders

var ordered = dbContext.Customers.Order(new List<OrderBy>
{
    new OrderBy { Sort = 1, Field = "LastName",  Direction = Direction.Ascending },
    new OrderBy { Sort = 2, Field = "FirstName", Direction = Direction.Ascending }
});
[
  { "sort": 1, "field": "LastName",  "direction": "Ascending" },
  { "sort": 2, "field": "FirstName", "direction": "Ascending" }
]

See also