Конвертировать в Entity Framework Lambda - PullRequest
0 голосов
/ 07 января 2019

Мне нужна помощь в преобразовании этого в лямбда-выражение Entity Framework

Оператор 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 голосов
/ 08 января 2019

Можете ли вы попробовать следующий запрос:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...