2012-04-28 3 views
0

Comment convertir SQL LINQconverti SQL groupe LINQ par min, compter

SELECT 
      [good_id] 
      ,MIN([good_price]) as minPrice 
      ,Count([distributor_id]) as distrCount 
     FROM [Provizor].[dbo].[PRICES] where region_id=22 
     GROUP BY [good_id] 
     ORDER BY distrCount desc 

Comment faire dans LINQ groupant

+1

Réponse: http: //stackoverflow.com/questions/654285/how-do-i-translate-this-group-by-min-sql-query-into-linq – Luxspes

Répondre

2

Quelque chose comme ceci:

var query = dbo.Prices 
       .Where(x => x.region_id == 22) 
       .GroupBy(x => x.good_id) 
       .Select(g => new 
       { 
        minPrice = g.Min(x => x.good_price), 
        distrCount = g.Count(x=> x.distributor_id!=null) 
       } 
       .OrderByDescending(x => x.distrCount); 
+0

LINQ var prix = (à partir de p dans _db.PRICEs où p.region_id == 22 groupe p par p.good_id en g sélectionner une nouvelle {good_id = g.Key , minPrice = g.min (x => x.good_price) , distrCount = g.Count (x = > x.distributor_id! = null) } ) .OrderByDescending (x => x.distrCount); – Sergey