我有一個包含個人消息的表。如何從每個使用Linq的用戶獲取單個最後一條記錄
我有幾個它列,但要求這個問題是下一: - 用戶ID - 消息發送的日期時間
我想從每個用戶的最後一個消息,不知道如何爲此目的編譯所需的linq查詢。
有關詳細信息,幾個用戶已發送給我50-100消息,但我想從每個用戶只有最後一個由datetime得到,它如何使用linq查詢?
我有一個包含個人消息的表。如何從每個使用Linq的用戶獲取單個最後一條記錄
我有幾個它列,但要求這個問題是下一: - 用戶ID - 消息發送的日期時間
我想從每個用戶的最後一個消息,不知道如何爲此目的編譯所需的linq查詢。
有關詳細信息,幾個用戶已發送給我50-100消息,但我想從每個用戶只有最後一個由datetime得到,它如何使用linq查詢?
沒有任何代碼告訴我關於你的架構,這是一個完整的猜測,但你應該僅僅具有日期時間訂購,並採取先......
對於單個用戶:
// Assuming you are using an Entity Framework context?
using (var context = new MyContext()) {
var lastMessage = context.PersonalMessages.Where(u => u.UserId == userId).OrderByDescending(t => t.SentDate).FirstOrDefault();
}
獲取最後的消息對所有用戶:
using (var context = new MyContext()) {
var lastMessages = context.PersonalMessages.GroupBy(pm => pm.UserId).SelectMany(g => g.OrderByDescending(pm => pm.SentDate).Take(1));
}
如果b就像通過用戶ID進行過濾一樣簡單,按日期排序並取得最高記錄。
對於一個用戶來說,一次是可以的,那麼所有用戶一次呢? – Jodrell 2015-02-10 10:57:18
有什麼代碼可以告訴我們嗎? – 2015-02-10 10:44:53
發佈您的實體模型。 – 2015-02-10 10:45:43
Eh ...最後()的消息? https://msdn.microsoft.com/en-us/library/vstudio/bb358775%28v=vs.100%29.aspx – 2015-02-10 10:46:05