1

パッキングスリップを生成するためのクエリを実行しようとしていますが、一般的な注文情報と、注文に含まれるアイテムの数が必要です。

これが私の基本的なクエリです:

var orders = (from cert in _orderRepository.GetAll()
                           where !cert.PrintedPackSlip
                           orderby cert.CardNumber
                           //group cert by cert.CardNumber
                           //into certGrp
                           select cert);

私がする必要があるのは、CardNumberでグループ化し、そのカード番号を持つ注文の数を数えることです。

できれば辞書のように出てくるのが理想的です

4

2 に答える 2

1

私が正しく理解していれば、注文ごとに、そのカード番号の注文の総数をリストする必要があります。この場合、次のように機能するはずです。

        var orders = (from cert in _orderRepository.GetAll()
                      join cert2 in _orderRepository.GetAll()
                      on cert.CardNumber equals cert2.CardNumber
                      where !cert.PrintedPackSlip 
                      where !cert2.PrintedPackSlip
                      group cert by cert
                      into certGrp
                      select certGrp).ToDictionary(o => o.Key,o => o.Count())
于 2012-07-05T19:39:14.837 に答える
1

このようなものかもしれません:

var orders = from cert in _orderRepository.GetAll()
                       where !cert.PrintedPackSlip
                       orderby cert.CardNumber
                       group cert by cert.CardNumber into certGrp
                       select new {CardNumber = certGrp.Key, Count = certGrp.Count());

foreach(var item in orders)
    Console.WriteLine("item.CardNumber: " + item.CardNumber + " item.Count: " + item.Count.ToString());
于 2012-07-05T19:10:52.933 に答える