1

以前の投稿で非常に役立つアドバイスを受け取りました: Linq to group by 2 columns in C# - ViewModel がビューに対して本来あるべき姿になるように、それを拡張しようとしています:

私の最初のクエリ:

var qbt = db.Calls.GroupBy(calls => new { calls.assignedteam, calls.status })
            .Select(call => new StatusByTeamViewModel1
        {
            Team = call.Key.assignedteam,
            Status = call.Key.status,
            Number = call.Count()
        }).OrderBy(z => z.Team).ThenBy(z => z.Status);

戻り値:

Team  Number Status
ta    40     Open
ta    60     Closed
tb    58     Open
tb    40     Closed
tc    1      Open
tc    122    Closed

そのテーブルを取得して、次のように変換します。

Team Open Closed
ta   40   60
tb   58   40
tc   1    122

私は以下のクエリを試していましたが、混乱しています.Open/Closed列の場合、すべてのチームはそれぞれに1または0しか表示しません:

        var qbt2 = qbt.GroupBy(x => x.Team)
          .Select(call => new StatusByTeamAllViewModel2
          {
              Team = call.Key,
              Open = qbt2.Where(it => it.Status == "Open" && it.Team==call.Key).Count(),
              Closed = qbt2.Where(it => it.Status == "Closed" && it.Team == call.Key).Count(),

          });

私はLinqPadでも試していますが、そこでも動作させるのに苦労しています。

ご協力いただきありがとうございます、

マーク

4

1 に答える 1