entity framework – 有条件地将列添加到group by中

我想有条件地将列添加到GroupBy子句中,但我不确定它是如何完成的。

我有5列,我想根据用户的输入逐个语句添加。 为此,我有以下属性:

ProductId ColorId PieceId SizeId WeightId 

如果任何属性的值大于0,则此列需要在group by子句中使用。

因此,如果ProductId,ColorId和PieceId的值大于0,则应该在group by中:

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

尝试类似的东西;

 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();