2010-04-22 7 views
0

J'ai la requête suivante:Traduire SQL requête LINQ - groupe/join/filtre

SELECT S.[FlowOrder], S.[DESCRIPTION], COUNT(I.ID) 
FROM WorkFlowStatus AS S 
INNER JOIN Item AS I 
    ON S.ID = I.StatusID 
WHERE I.Installation = '1' 
GROUP BY S.[Description], S.[FlowOrder] 
ORDER BY S.[FlowOrder] 

Ce qui me donne le compte d'un élément, regroupés par une clé étrangère vers un workflow, fournir le nom descriptif de mon Table FK.

Je suis allé loin avec la requête LINQ (LINQ to SQL) en arrière-plan:

var items = from s in _entities.WorkflowStatus 
    join i in _entities.Items on s.ID equals i.StatusId 
    into Statuses 
    orderby s.FlowOrder 
    select new {s.Description, ItemCount = Statuses.Count() }; 

Comment puis-je obtenir la clause where dans le SQL dans cette requête LINQ?

Répondre

3

Que pensez-vous de cela?

var items = from s in _entities.WorkflowStatus 
    join i in _entities.Items.Where(item=>item. Installation == "1") on s.ID equals i.StatusId 
    into Statuses 
    orderby s.FlowOrder 
    select new {s.Description, ItemCount = Statuses.Count() };