Je veux être en mesure d'ajouter la commande à mes requêtes dynamiquement:Enchaînement arbres d'expression 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);
Comment puis-je mettre Transform()
?
public static IQueryable<T> Transform<T>(this IQueryable<T> query, Expression<Func<IQueryable<T>, IOrderedQueryable<T>>> orderExpr)
{
// ??????????????????
}
Mon problème est que je ne veux pas avoir 2 surcharges pour l'ordre croissant/décroissant. Je dois appliquer n'importe quelle expression OrderBy()/OrderByDescending()
ou leur combinaison est passée.
Ne pouvez-vous pas ajouter la première commande dans AddOrder? –
Malheureusement non, j'ai besoin d'une méthode générique qui va effectuer d'autres transformations après avoir ajouté une commande à une requête. – UserControl
Quel est le problème avec le OrderBy/ThenBy original? Comme @hdv a dit que vous n'avez pas besoin d'autre chose (si je ne manque rien ...) –