Ajuda com querie em Linq
Eu tenho uma tabela com o seguintes colunas:
Id | ContaID |InteressadoId | RemetenteId | DestinatarioId | Msg
----------------------------------------------------------------------------------------
1 | 2 |João | João | Maria |bla bla bla...
2 | 2 |João | Maria | João |ble ble ble...
3 | 3 |Erik | Erik | Mark |O Amadeu ganhou a promoção...
4 | 3 |Erik | Mark | Erik |Eu sabia...
5 | 3 |Erik | Mark | Erik |Vou pedir as contas...
6 | 4 |Jake | Jake | Mara |As oito da noite lá em casa...
O cenário que eu preciso é que cada usuário que esteja logado, carregue suas conversas, então eu tenho a seguinte querie:
Essa querie me retorna as ultimas msgs dos usuários , como eu posso retornar, agrupada, a última mensagem, o interessado e a conta?
Id | ContaID |InteressadoId | RemetenteId | DestinatarioId | Msg
----------------------------------------------------------------------------------------
1 | 2 |João | João | Maria |bla bla bla...
2 | 2 |João | Maria | João |ble ble ble...
3 | 3 |Erik | Erik | Mark |O Amadeu ganhou a promoção...
4 | 3 |Erik | Mark | Erik |Eu sabia...
5 | 3 |Erik | Mark | Erik |Vou pedir as contas...
6 | 4 |Jake | Jake | Mara |As oito da noite lá em casa...
O cenário que eu preciso é que cada usuário que esteja logado, carregue suas conversas, então eu tenho a seguinte querie:
var msg = from p in db.Chats orderby p.ChatId descending group p by new { p.ContaId, p.InteressadoId } into g select new { Interessado = g.Key, Conta = g.Select(m => m.Mensagem).First()};
Essa querie me retorna as ultimas msgs dos usuários , como eu posso retornar, agrupada, a última mensagem, o interessado e a conta?
Claudinei Santos
Curtidas 0
Respostas
Renato Dias
30/10/2018
Fala Claudinei! Segue o código:
var msg = db.Chats.GroupBy(x => new { x.ContaId, x.InteressadoId }).OrderByDescending(c => c.id).Select(gr => new { Interessado= gr.Key, c => c.Msg, c.DestinatarioId, c.RemetenteId }).FirstOrDefault();
var msg = db.Chats.GroupBy(x => new { x.ContaId, x.InteressadoId }).OrderByDescending(c => c.id).Select(gr => new { Interessado= gr.Key, c => c.Msg, c.DestinatarioId, c.RemetenteId }).FirstOrDefault();
GOSTEI 0