Группировка по двум полям и сумма в Entity Framework

Рейтинг: 0Ответов: 0Опубликовано: 23.02.2023

Из базы данных мы получаем такой объект:

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

Ответы

Ответов пока нет.