Frank (no reg): Linq und Count

Beitrag lesen

Servus,
unser Sportsfreund Smart bringt hier immer wieder Linq und SQL durcheinander.

Smart, was genau hast du vorliegen? 2 Tabellen in einer SQL Datenbank (SQL Compact, SQL Server, ...) oder 2 Collections voll Entities. Oder wie dedlfix vermutet, ein EF Modell?

Hast du zwei Tabellen in einer MS SQL Datenbank, dann kannst du das Problem mithilfe eines Select Statements lösen.

SELECT  
  s.lagerid  
, l.LagerName  
, COUNT(*) AS NumStationen  
, SUM(numgeraete) AS TotalGeraeteProLager  
   FROM (SELECT lagerid, StationName, COUNT(*) as numgeraete FROM geraete GROUP BY lagerid, StationName) s  
   JOIN lager l ON l.lagerid = s.lagerid  
   GROUP BY s.lagerid, l.LagerName

Und das ist nicht die einzige Möglichkeit für ein einziges Select.

Hast du 2 Entities Lager { lagerId, lagerName } und Geraet { geraetId, lagerId, stationName, geraetName } in deinem C# Code, dann hast du selbige sicherlich in Form von mehr oder weniger typisierten Collections vorliegen.
Diese Collections sollten IEnumerable<..>, IList<..> implementieren, damit du effektiv LinQ darauf anwenden kannst. Das Prinzip bleibt aber annähernd das gleiche.

Poste doch mal etwas Beispiel Code.

Ciao, Frank