는 동적으로 내 쿼리에 순서를 추가 할 수 있도록 :체인화 된 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는 당신이 다른 것을 필요로하지 않는다고 말했기 때문에 (아무 것도 놓치지 않으면 ...) –