我希望能夠訂購動態添加到我的疑問:鏈接IQueryable的表達式樹
Expression<Func<IQueryable<MyEntity>, IOrderedQueryable<MyEntity>>> order1 = e => e.OrderBy(x => x.Weight);
Expression<Func<IQueryable<MyEntity>, IOrderedQueryable<MyEntity>>> order2 = e => e.OrderByDescending(x => x.Weight).ThenBy(x => x.Price);
Expression<Func<IQueryable<MyEntity>, IOrderedQueryable<MyEntity>>> order3 = e => e.OrderBy(x => x.Category).ThenBy(x => x.Price);
IQueryable<MyEntity> query = any EF query;
var transformedQuery = query.Transform(order1/order2/order3);
如何實現Transform()
?
public static IQueryable<T> Transform<T>(this IQueryable<T> query, Expression<Func<IQueryable<T>, IOrderedQueryable<T>>> orderExpr)
{
// ??????????????????
}
我的問題是,我不想有2個重載升序/降序排序。我需要應用任何OrderBy()/OrderByDescending()
表達式或其組合通過。
你不能在AddOrder中添加第一個訂單嗎? –
不幸的是,我需要一個通用的方法,在向查詢添加命令後執行其他轉換。 – UserControl
原始OrderBy/ThenBy有什麼問題?正如@hdv所說,你不需要任何其他東西(如果我不想錯過任何東西......) –