Есть приложение на ASP.NET Core, и мне нужно сделать выборку значений из базы данных и сразу сгруппировать результат. Как это сделать?
Вот код модели
public class Orders
{
public int Id { get; set; }
public int Kod { get; set; }
public string Nomenklatura { get; set; }
public int Kolich { get; set; }
}
Используйте Linq GourpBy. Он возвращает массив массивов, и его можно будет потом перевести к типу Dictionary:
var orders = db.Orders
.Where(x => x.Kod == kod)
.GroupBy(x => x.Nomenklatura)
.ToDictionary(x => x.FirstOrDefault().Nomenklatura, x => x.ToList() )
Затем можно будет получить результат группировки по ключу
orders["anyNomenklatura"]
Вот что решит все ваши проблемы:
public IEnumerable GetNomenklatura(int kod)
{
var orders = db.Orders
.Where(x => x.Kod == kod)
.GroupBy(x => x.Nomenklatura)
.Select(x => x.Key)
.ToList();
return orders;
}
А вообще, вам бы подучить LINQ. Вот, нашёл видео, вроде неплохое - Введение в LINQ