Guy's我需要此sql语句的Lambda表达式。将sql转换为Lambda表达式
select GalleryId, Max(Bid)
from BidModels
where GalleryId in (select GalleryId from BidModels where UserId = (UserId))
group by GalleryId
Guy's我需要此sql语句的Lambda表达式。将sql转换为Lambda表达式
select GalleryId, Max(Bid)
from BidModels
where GalleryId in (select GalleryId from BidModels where UserId = (UserId))
group by GalleryId
这里是你如何能做到这
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)}));
我不明白为什么你需要的子查询,因为你可以选择其中传递用户ID =用户ID的所有投标;与记:
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)};
我正在尝试查询数据库,以查找特定于与所有用户的出价相关的用户的出价出价。换句话说,我希望一个投标人知道他的出价与他的同一套产品的其他出价有关。 –
这似乎是答案感谢您的帮助:
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()
}
userid = userid是一个no-op(总是为true)。你是否打算将其中的一个作为输入参数? – Hogan
对不起,用户ID是变量应该是用户ID =一些PARR? –
你确定你的意思是lambda或是LINQToSQL? – Nilesh