Перевод с SQL на Linq при группировании и упорядочении по - PullRequest
2 голосов
/ 24 декабря 2011

возможно ли преобразовать этот sql-код в linq?

SELECT top 3 t.tProductIDF, Count(t.tQty)as QtyBought, p.pName, v.vName
From Transactions t, Product p, Vendor v
where t.tProductIDF = p.pID and p.pdeleted = 0 and p.pVendorIDF = v.vID and v.vActive = 1
Group By t.tProductIDF, p.pName, v.vName
Order By QtyBought desc;

Я сейчас здесь:

var topProds = (from t in this._entities.Transactions
                group t by t.tProductIDF into g
                orderby g.Count() descending
                select new {g.Key }).Take(3);

но так как я не могу получить доступ к t из выбранной части, я не знаю, как мне получить pName и vName

1 Ответ

1 голос
/ 28 декабря 2011
var topProds = (from t in this._entities.Transactions  
               group t by t.tProductIDF into g
               orderby g.Count() descending    
               select new { ProductIDF = g.Key , Qty= g.Sum(cc=>cc.tQty) , Vname = g.Select(cc=>cc.vName).FirstOrDefault() }).Take(3); 

Вы держите каждую строку в группе.

...