2009-09-18 7 views
0

Quelle serait l'équivalent d'expression Linq de la requête TSQL suivante:Linq expression équivalente de requête TSQL

SELECT c.[CustomerId] 
    ,c.[Name] 
    , (SELECT COUNT(*) FROM Incidents WHERE CustomerId = c.CustomerId) AS IncidentsCount 
    , (SELECT COUNT(*) FROM Opportunities WHERE CustomerId = c.CustomerId) AS OpportunitiesCount 
    , (SELECT COUNT(*) FROM Visits WHERE CustomerId = c.CustomerId) AS VisitsCount 
FROM [Customers] c 

Répondre

3

Je n'ai pas revérifié ce en studio visuel, mais cela devrait fonctionner:

var x = (from c in Context.Customers 
     select new { 
      CustomerId = c.CustomerId, 
      Name = c.Name, 
      IncidentsCount = 
       Context.Customers.Count(i => i.CustomerId == c.CustomerId), 
      OpportunitiesCount = 
       Context.Opportunities.Count(o => o.CustomerId == c.CustomerId), 
      VisitsCount = 
       Context.Visits.Count(v => v.CustomerId == c.CustomerId) 
     }); 

Mise à jour: J'ai changé le code pour être un peu plus facile à lire.

+0

Excellent, merci! – desautelsj