Mam tabelę o polach TeamName
i CurrentStatus
. Robię kwerendy LINQ, aby uzyskać dla każdego zespołu i dla każdego stanu zliczania rekordów:Uwzględnij count = 0 w wynikach linq
var teamStatusCounts = models.GroupBy(x => new { x.CurrentStatus, x.TeamName })
.Select(g => new { g.Key, Count = g.Count() });
Wyniki tego zapytania zwraca wszystkie liczniki wyjątkiem sytuacji, gdy liczba 0. Muszę wiersze tam, gdzie nie jest rekordem dla konkretnego zespołu i określonego statusu (gdzie liczba = 0).
Cóż, nie można utworzyć wiersze z powietrza. Być może masz osobny stolik ze wszystkimi wymienionymi zespołami. Jeśli tak, musisz wykonać lewe sprzężenie między obiema tabelami. EDYCJA: W zależności od wymagań może być również konieczne dołączenie do tabeli zawierającej wszystkie możliwe statusy. – sstan
Prawdopodobnie stworzyłeś model, wewnętrznie dołączając do swojej tabeli statusu i swoich zespołów, prawda? wtedy stracisz wszystkie dane statusu w tabeli wyników. możesz albo zmienić go na lewe połączenie, albo dodać puste wiersze na końcu –
Naiwny, coś jak 'var teamStatusCounts = allPossibleStatusAndTeamCombinations.Select (x => nowy {Key = x, Count = models.Count (y => y.CurrentStatus == x.CurrentStatus && y.TeamName == x.TeamName),}); '. –