Kreuz verbindet als mehr von Klauseln in einem Abfrage-Ausdruck oder einen Aufruf von Select in Erweiterungsmethode Syntax allgemein dargestellt.
So ist der erste Teil Ihrer Abfrage könnte sein:
var query = from systemName in db.Table.Select(x => x.SystemName).Distinct()
from resetCode in db.Table.Select(x => x.ResetCode).Distinct()
...
Linke Außen sind Joins in der Regel mit einem "join ... in ..." -Abfrage, möglicherweise wie folgt dargestellt:
var query = from systemName in db.Table.Select(x => x.SystemName).Distinct()
from resetCode in db.Table.Select(x => x.ResetCode).Distinct()
join tmp in db.Table on
new { ResetCode = resetCode, SystemName = systemName }
equals new { tmp.ResetCode, tmp.SystemName }
into tmpGroup
select new { ResetCode = resetCode,
SystemName = systemName,
Count = tmpGroup.Count() };
Ich bin nicht sicher über den Count Teil, um ehrlich zu sein ... Ich bin nicht 100% sicher, was die COUNT(v.ResetCode)
in Ihrem ursprünglichen SQL tut.
Vielen Dank. Es hat mein Problem gelöst. Ich fügte den Spaltennamen im count() hinzu, um 0 für fehlende resetcodes zu haben. Die linq-Abfrage zeigt mir die Ergebnisse korrekt an. Aber wird niot mit Gruppe durch einen Einfluss haben? nur neugierig zu wissen, welche Rolle es tatsächlich spielt .. – Sasi
@Sasi: Sie führen eine "Gruppe von" Operation mit der "Join ... in" -Operation, effektiv. Es verwendet den GroupJoin LINQ-Abfrageoperator. –