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.