2 Stimmen

C# Linq-Äquivalent von SQL Count()

Ich habe eine ziemlich komplizierte Join-Abfrage, die ich mit meiner Datenbank verwende. Wenn ich sie ausführe, erhalte ich Ergebnisse, die ein baseID und eine Reihe anderer Bereiche. Dann möchte ich dies nehmen baseID und stellen Sie fest, wie oft er in einer Tabelle wie dieser vorkommt:

TableToBeCounted (Many to Many)
{
     baseID,
     childID
}

Wie führe ich eine linq-Abfrage, die noch die Abfrage verwendet ich bereits haben und dann JOINs die count() mit der baseID?

Etwas wie dies in ungeprüften Linq-Code:

from k in db.Kingdom
join p in db.Phylum on k.KingdomID equals p.KingdomID
where p.PhylumID == "Something"
join c in db.Class on p.PhylumID equals c.PhylumID
select new {c.ClassID, c.Name};

Ich möchte dann diesen Code nehmen und zählen, wie viele Aufträge in jeder Klasse verschachtelt sind. Ich möchte dann eine Spalte mit Linq anhängen, so dass meine endgültige Auswahl wie folgt aussieht:

select new {c.ClassID, c.Name, o.Count()}//Or something like that.

Das gesamte Beispiel basiert auf dem Biologische Klassifizierung System.

Aktualisierung:

Nehmen wir für das Beispiel an, dass ich mehrere Tabellen habe:

Kingdom
|--Phylum
    |--Class
       |--Order

Jeder Phylum hat eine Phylum-ID und eine Königreich-ID. Das bedeutet, dass alle Stämme eine Teilmenge eines Königreichs sind. Alle Ordnungen sind Teilmengen einer Klassen-ID. Ich möchte zählen, wie viele Orden zu jeder Klasse gehören.

Ich hoffe, das ist jetzt klar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X