Reputation: 165
I have this class:
public class Item
{
public virtual int32 Id { get; set; }
public virtual Previa Previa { get; set; }
public virtual Product Product { get; set; }
public virtual Int32 Quantity { get; set; }
public virtual Decimal Price { get; set; }
public virtual Decimal Total { get; set; }
}
And now i need to a query to find every Items in database, group by Products, with the sum of Quantity and Total. For find every Items, i use:
public List<Item> FindItem(int IdProduct = 0)
{
var retorno = (from c in Session.Query<Item>()
select c);
if (IdProduto > 0)
retorno = retorno.Where(x => x.Product.Id == IdProduct)
return retorno.ToList<Item>();
}
But I don't know how to group these items. Could someone please help me?
Upvotes: 0
Views: 1919
Reputation: 1503290
Your question is far from clear, but it sounds like you want a query such as:
var query = from item in Session.Query<Item>()
group item by item.Product into g
select new {
Product = g.Key,
Quantity = g.Sum(item => item.Quantity),
Total = g.Sum(item => item.Total)
};
How you then pass that back is a different matter - you almost certainly don't want a List<Item>
though...
Upvotes: 4