2

伙计,我需要这个 sql 语句的 Lambda 表达式。

select GalleryId, Max(Bid)
from BidModels
where GalleryId in (select GalleryId from BidModels where UserId = (UserId))
group by GalleryId
4

3 回答 3

1

我不明白为什么需要子查询,因为您可以选择传入 UserId = userid 的所有投标。考虑到这一点:

var userid = <whatever>;

var query = from b in BidModels
            where b.UserId = userid
            group by b.GalleryId into g
            select new {Id = g.Key, MaxBid = g.Max(x => x.Bid)};
于 2013-09-01T02:15:44.113 回答
0

这是你如何做到的

var galleryIds = (bidModelses.Where(b => b.UserId == [YOURPARAMETER])
                 .Select(b => b.GalleryId));

var query = (bidModelses.Where(bm => galleryIds.Contains(bm.GalleryId))
            .GroupBy(bm => bm.GalleryId)
            .Select(gbm => new {gbm.Key, MaxBid = gbm.Max(p => p.BidId)}));
于 2013-09-01T02:14:57.670 回答
0

这似乎是答案感谢您的帮助:

from b in BidModels
let  MyGallery = from a in BidModels where a.UserId == (1) select new { a.GalleryId }
where MyGallery.Any()
group b.Bid by b.GalleryId into g
select new 
 { Id     = g.Key, 
   MaxBid = g.Max()
 } 
于 2013-09-01T05:53:38.487 回答