以前の投稿で非常に役立つアドバイスを受け取りました: 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でも試していますが、そこでも動作させるのに苦労しています。
ご協力いただきありがとうございます、
マーク