2013-05-16 87 views
0

我有一個投標實體,一個用戶實體和一個車輛實體。選擇表格中的不同行

投標包含進行投標的車輛以及進行投標的用戶的鏈接。它還包含出價的日期。

我想寫一個查詢,說

給我一個特定用戶的所有投標爲所有 他出價的車輛。但是,如果用戶對一輛 車輛進行了多次投標,則只能給我最後的出價。

換句話說,每輛車應該只有一個結果。

寫linq查詢證明是困難的。任何人有任何想法?

+0

你嘗試過這麼遠嗎?我不是一個勢利,說你需要先嚐試爲自己,​​我想你肯定有。我只是好奇 – user1596138

+0

我試圖做一個GroupBy但它沒有工作我一直在嘗試 –

+0

是否有投標時間戳什麼時候投入?你有什麼樣的PK,身份證柱? – Justin

回答

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()實現輸出。