none
Como ordenar com expressão lambda uma expressão que possui JOIN C# RRS feed

  • Pergunta

  • Em uma expressão onde tenho um join, a primeira tabela tem o ID, VAlOR etc...

    a segunda tabela tem ID, DESCRIÇÃO etc... e eu preciso ordenar o resultado pela ordem alfabética do campo descrição, mas não consigo ordenar pois perco o resultado da query, está asim:

    var rec = new Repository<FINAN>().Query(s => s.DATA_VENCIMENTO >= pDataInicial
                            && s.DATA_VENCIMENTO <= pDataFinal).Join(
                                recStatus, x => x.ID_TITULO_SITUACAO, y => y.ID_TITULO_SITUACAO, (x, y) => x).Join(
                                pLstCLIENTE, x => x.ID_CLI, y => y.ID_CLI,
                                (x, y) => x).ToList();

    no final eu até tentei assim: (x, y) => new {x, y}).ToList().OrderBy(s => s.y.NOME_CLIENTE).ToList();

    mas da erro.

    abs

    Léo



    Leonardo Jacques da Silva Desenvolvedor .net

    terça-feira, 20 de maio de 2014 14:28

Respostas

Todas as Respostas

  • Olá, você deve agrupar o resultado antes de fazer o orderby, veja este exemplo eu uso Join agrupo os resultados e uso a propriedade Key de GroupBy para fazer a ordenação :

    var sql = Cidade.Join(db.Paises,
                                      c => c.Id,
                                      p => p.Id,
                                      (c, p) => new { c, p })
                                    .Where(i => i.c.Id > 10)
                                    .GroupBy(g => new
                                      {
                                          Cid = g.c,
                                          P = g.p
                                      })
                                    .OrderBy(i => i.Key.P.Descr)
                                    .ToList();

    • Sugerido como Resposta Daniel Brito br quarta-feira, 21 de maio de 2014 10:52
    terça-feira, 20 de maio de 2014 14:49
  •  Olá, 

      conseguiu resolver seu problema ?

    • Marcado como Resposta Leosul terça-feira, 24 de junho de 2014 13:43
    segunda-feira, 2 de junho de 2014 11:41