有2个表:Rents
和People
我是linq语句编程的新手。这是我想转换为linq的SQL查询:
select top 20 r.partnerid, max(p.PartnerName )
from Rents r join People p on p.Partnerid = r.Partnerid
where r.partnerid > 0
group by r.partnerid
order by count(r.rentid) desc
我尝试过类似的操作,但是我不知道如何将People.PartnerName放入select语句:
var linqQuery = from r in meta.Rents
join p in meta.People on r.PartnerId equals p.PartnerId
where r.PartnerId > 0
group r by r.PartnerId into pp
select new
{
PartnerId = pp.Key,
PartnerName = ??? // PartnerName is a field/column from People
}
// order by ?
答案 0 :(得分:0)
您可能想从分组列表中获得第一个
PartnerName = pp.First().PartnerName
或者,您也可以像原始查询一样使用max
PartnerName = pp.Max(x => x.PartnerName)
答案 1 :(得分:0)
您可以做类似的事情
PartnerName = pp.Select(p => p.PartnerName).FirstOrDefault()
从这里您将获得一些进一步的解释和不断变化的提琴: Group by in LINQ