我有一个投标实体、一个用户实体和一个车辆实体。
出价包含指向出价车辆以及出价用户的链接。它还包含出价的日期。
我正在尝试编写一个查询
给我一个特定用户对他投标的所有车辆的所有投标。但是,如果用户对车辆进行了多次出价,则只给我最后一次出价。
换句话说,每个车辆应该只有一个结果。
事实证明,编写 linq 查询很困难。有人知道吗?
我有一个投标实体、一个用户实体和一个车辆实体。
出价包含指向出价车辆以及出价用户的链接。它还包含出价的日期。
我正在尝试编写一个查询
给我一个特定用户对他投标的所有车辆的所有投标。但是,如果用户对车辆进行了多次出价,则只给我最后一次出价。
换句话说,每个车辆应该只有一个结果。
事实证明,编写 linq 查询很困难。有人知道吗?
如果您的用户有一个Id
主键,这样的事情应该可以工作;
int userId = <user id to find>
var bids = db.Bids
.Where(x => x.User.Id == userId)
.GroupBy(x => x.Vehicle)
.Select(x => new {
vehicle = x.Key,
lastbid = x.OrderByDescending(y => y.BidTime).First()
});
foreach (var bid in bids)
Console.WriteLine(String.Format("Bid: {0} for vehicle {1}",
bid.lastbid, bid.vehicle));
(需要合理ToString()
实现的输出。