0

我有一个投标实体、一个用户实体和一个车辆实体。

出价包含指向出价车辆以及出价用户的链接。它还包含出价的日期。

我正在尝试编写一个查询

给我一个特定用户对他投标的所有车辆的所有投标。但是,如果用户对车辆进行了多次出价,则只给我最后一次出价。

换句话说,每个车辆应该只有一个结果。

事实证明,编写 linq 查询很困难。有人知道吗?

4

1 回答 1

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()实现的输出。

于 2013-05-16T17:12:58.573 回答