2

異なるカウント基準に基づく 2 つの異なるカウントを含む単一の LINQ クエリを作成する方法はありますか? たとえば、「受信ボックス」をクエリして、存在するメッセージの総数と、各受信ボックスの未読メッセージの別のカウントを取得するとします。

これが私が探している結果です...
NAME UNREAD TOTAL
gbush 10 20
bobama 30 100

これは 1 つのクエリで実行できますか、それとも 2 つのクエリが必要ですか?

未読アイテムの数をカウントする必要があるのは次のとおりですが、合計アイテムはどこで/どのように取得できますか?

var results = from message in context.inbox
              where message.Status = "UNREAD"
              group message by message.Name into g
              select new { Name = g.Key, Unread = g.Count() };
4

1 に答える 1

3

Count述語を受け入れるオーバーロードを使用できます。

var results = from message in context.inbox
              group message by message.Name into g
              select new 
              { 
                  Name = g.Key, 
                  Unread = g.Count(m => m.Status == "UNREAD"),
                  Total = g.Count()
              };
于 2012-08-22T19:42:00.787 に答える