我做了一個簡單的郵件系統和我的SQL表就像LINQ選擇與組由
id | from_id | to_id | text
---------------------------
1 | 10 | 11 | abc
2 | 11 | 10 | cde
3 | 10 | 11 | fgh
例如我「用戶10」,當我將消息發送到「用戶11」我要看看我的消息框如
---> 11 fgh
並且當用戶11向我發送回覆前。 「hij」我必須看到像
它像Twitter的dm系統。如果我是最後一位發送消息的人,則必須查看我發送消息的人員和消息內容。
return (from data in db.user_messages.AsEnumerable()
where data.id == ((from messages in db.user_messages
where messages.from_id == data.from_id
orderby messages.message_created_at descending
select new
{
messages.id
}).Take(1).FirstOrDefault().id) &&
data.to_id == user.UserId
orderby data.message_created_at descending
select data).ToList();
有了這個代碼,當用戶向我發送一個消息,我只能看到的,如果我是誰發送的最後一條消息的一個,我不能得到任何結果。
我該如何改進這個選擇?謝謝。
什麼是你想選擇 - 從最後一個和最後一個消息?或者只是最後一條消息來自或來自? –
來自我的最後消息文本以及我發送的其他用戶的ID。但如果其他用戶向我發送回覆,我必須查看該用戶的消息內容以及該用戶的ID – user2956229