我有一个Bid实体,一个User实体和一个Vehicle实体。
出价包含指向出价的车辆以及出价的用户的链接。它还包含出价的日期。
我正在尝试编写一个说
的查询向我提供所有车辆的特定用户的所有出价 他竞标了。但是,用户为a进行了多次出价 车辆只给我最后一次出价。
换句话说,每辆车应该只有一个结果。
编写linq查询证明是困难的。有人有任何想法吗?
答案 0 :(得分:1)
如果您的用户拥有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()
实现。