转换为实体框架Lambda

时间:2019-01-07 20:48:23

标签: sql sql-server entity-framework lambda

在将其转换为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'

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();
相关问题