Вам необходимо сгруппировать по ProductID
, а затем спроецировать свой результат в класс Sample
, одно свойство с .Key
и второе свойство с .Count()
.
List<Sample> result = await context.InvoiceItems.GroupBy(q => q.ProductID)
.OrderByDescending(gp => gp.Count())
.Take(5)
.Select(g => new Sample { ProductID = g.Key, Value_Occurence = g.Count() }).ToListAsync();
result.ForEach(x => Console.WriteLine($"ID: {x.ProductID}, \t Value_Occurence: {x.Value_Occurence}"));
Вы можете спроецировать свой результатв приведенный ниже класс выборки.
class Sample
{
public int ProductID { get; set; }
public int Value_Occurence { get; set; }
}
Выход: Ввод только с одним InvoiceItem
для каждого идентификатора продукта.