Группировка по двум полям и сумма в Entity Framework
Из базы данных мы получаем такой объект:
public class Products
{
public int Id { get; set; }
public Warehouses warehouses { get; set; }
public Categories categories { get; set; }
public string name { get; set; }
public DateTime receivingDate { get; set; }
public DateTime? expirationDate { get; set; }
public int count { get; set; }
public double price { get; set; }
public double retailprice { get; set; }
public string description { get; set; }
}
Нужно сгруппировать данные по полям name
и dateOfReceiving
а также подсчитать сумму в значений в поле price
я пытался так:
Products = await _context.Products.Include(c => c.categories).ThenInclude(w => w.warehouses)
.GroupBy(p => new { p.categories, p.warehouses, p.name, p.receivingDate, p.expirationDate, p.price, p.retailprice, p.description})
.Select(x => new Products
{
categories = x.Key.categories,
warehouses = x.Key.warehouses,
name = x.Key.name,
receivingDate = x.Key.receivingDate,
expirationDate = x.Key.expirationDate,
price = x.Sum(y => y.price),
retailprice = x.Key.retailprice,
description = x.Key.description
}).ToListAsync();
но получил ошибку
InvalidOperationException: The LINQ expression ... could not be translated
Источник: Stack Overflow на русском