按列表分组<item> </item>

时间:2012-04-13 12:40:49

标签: c# linq list group-by

我有这堂课:

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; }
}

现在我需要一个查询来查找数据库中的每个项目,按产品分组,数量和总和的总和。 为了查找每个项目,我使用:

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>();
}

但我不知道如何分组这些项目。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

您的问题远非明确,但听起来就像您想要查询一样:

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)
            };

然后你如何传回它是另一回事 - 你几乎肯定想要List<Item>但是......

相关问题