2012-01-15 2 views
2

Je ne sais pas comment faire, j'ai cette partie d'une requête:Linq pour compte distinct

let DistinctHits = db.tblTrackerVisits 
    .Where() 
    .Select(d=>d.IPID) 
    .Distinct() 
    .Count() 

Il y a une table appelée db.tblTrackerVisitVariables:

enter image description here

Ce que je J'essaie de faire est de modifier la requête ci-dessus afin qu'il ne compte que les enregistrements distincts où l'un des tblTrackerVisitVariable enregistrements connexes a un VariableID de n.

Un exemple pseudo qui pourrait le rendre plus clair:

let DistinctHits = db.tblTrackerVisits 
    .Where(d=> db.tblTrackerVisitVariables.where(v=>v.VisitID == d.ID AND v.VariableID == n)) 
    .Select(d=>d.IPID) 
    .Distinct() 
    .Count() 

Répondre

4

Peut-être quelque chose comme ce qui suit:

let DistinctHits = db.tblTrackerVisits 
    .Where(d => d.tblTrackerVisitVariables.Any(v => v.VariableID == n)) 
    .Select(d => d.IPID) 
    .Distinct() 
    .Count() 
+0

Merci! Fonctionne très bien –