在将其转换为Entity Framework lambda表达式时,我需要帮助
SQL语句:
SELECT
t.SenderID, t.RecieverID, t.Conversationtoken, r.[date]
FROM
(SELECT
Conversationtoken, MAX([date]) AS Maxdate
FROM
tbl_messages
GROUP BY
Conversationtoken) r
INNER JOIN
tbl_messages t ON t.Conversationtoken = r.Conversationtoken
AND t.date = r.Maxdate
WHERE
SenderID = '1' OR ReceiverID = '1'
答案 0 :(得分:0)
您可以尝试以下查询吗?
var firstSet = dbEntity.tbl_messages.GroupBy(x => x.Conversationtoken).Select(x => new { Conversationtoken = x.Key, Maxdate = x.Max(y => y.date) });
var result = (from t in dbEntity.tbl_messages
join r in firstSet on t.Conversationtoken equals r.Conversationtoken
where t.Date == r.Maxdate
select new
{
t.SenderID,
t.RecieverID,
r.Conversationtoken,
r.Maxdate
}).Where(x => x.SenderID == 1 || x.RecieverID == 1).ToList();