选择表中的不同行

时间:2013-05-16 16:42:22

标签: entity-framework-5

我有一个Bid实体,一个User实体和一个Vehicle实体。

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

我正在尝试编写一个说

的查询
  

向我提供所有车辆的特定用户的所有出价   他竞标了。但是,用户为a进行了多次出价   车辆只给我最后一次出价。

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

编写linq查询证明是困难的。有人有任何想法吗?

1 个答案:

答案 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()实现。