0

私はこのクラスを持っています:

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

しかし、これらのアイテムをグループ化する方法がわかりません。誰か助けてくれませんか?

4

1 に答える 1

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>...

于 2012-04-13T12:45:51.657 に答える