J'ai une requête de jointure assez compliquée que j'utilise avec ma base de données. En l'exécutant, je finis avec des résultats qui contiennent un baseID
et un tas d'autres champs. Je veux donc profiter de cette baseID
et de déterminer combien de fois il se produit dans un tableau comme celui-ci:C# Linq eqiuvalent de SQL Count()
TableToBeCounted (Many to Many)
{
baseID,
childID
}
Comment puis-je effectuer une requête LINQ qui utilise encore la requête que je l'ai déjà et rejoint ensuite le nombre() avec l'ID de base?
Quelque chose comme cela dans le code LINQ non testé:
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};
Je veux donc prendre ce code et compter le nombre de commandes sont imbriquées au sein de chaque classe. Je veux ensuite ajouter une colonne à l'aide LINQ pour que mes regards de sélection finale comme ceci:
select new {c.ClassID, c.Name, o.Count()}//Or something like that.
L'exemple entier est basé sur le système Biological Classification.
Mise à jour:
On suppose pour l'exemple que j'ai plusieurs tables:
Kingdom
|--Phylum
|--Class
|--Order
Chaque Embranchement a un ID Phylum et un royaume ID. Ce qui signifie que tous les phylum sont un sous-ensemble d'un royaume. Toutes les commandes sont des sous-ensembles d'un ID de classe. Je veux compter combien d'ordres ci-dessous pour chaque classe.
J'espère que c'est clair maintenant.
Où avez l'Ordre 'O' viennent de votre requête ? Vous n'avez rien mentionné d'où ça vient ou à quoi ça ressemble. –
L'ordre o, est juste le groupe hiérarchique suivant ci-dessous classe. Vous pouvez supposer qu'il y a 'from o dans db.Order 'où order est l'enfantID et Class est l'ID baseID. – Rick