Entity Framework – Ajout conditionnel de colonnes au groupe par

Je souhaite append conditionnellement des colonnes à la clause GroupBy mais je ne sais pas comment procéder.

J’ai 5 colonnes que je veux append groupe par instruction en fonction de l’entrée de l’utilisateur. Pour ce faire, j’ai les propriétés suivantes:

ProductId ColorId PieceId SizeId WeightId 

Si une propriété a une valeur supérieure à 0, cette colonne doit être utilisée dans la clause group by.

Donc, si ProductId, ColorId et PieceId ont une valeur supérieure à 0, les valeurs suivantes doivent figurer dans le groupe suivant:

 list.GroupBy(p => new { p.Product.Id, p.ColorId, p.PieceId }); 

Essayez quelque chose comme ça;

 var groupedList = list.GroupBy(p => new { ProductId = p.Product.Id > 5 ? p.Product.Id : (int?)null, ColorId = p.ColorId > 5 ? p.ColorId : (int?)null, PieceId = p.PieceId > 5 ? p.PieceId : (int?)null }) .Select(x => new { x.Key.ProductId, x.Key.ColorId, x.Key.PieceId }).ToList();