none
Fazer um count em uma linq que me retorne um ToList() RRS feed

  • Pergunta

  • Preciso fazer um count, para a seguinte situação. Veja na imagem abaixo, que eu tenho repetido algumas farmácias, veja os CNPJ delas(06626253003681 e 06626253001476). Elas estão repetidas, porque estão em datas diferentes. O que necessito é que eu faça um count na quantidade de farmácias e o somatório eu coloco no nó Eucerin Hyaluron Noite 50mg, que nesse exemplo seria 6 e ao lado de cada medicamento a quantidade 1. Acontece que na minha LINQ eu tenho um ToList() e isso não me permite dar um Count(). Tenho muita dificuldade para fazer isso. Veja como está minha tela: 

    E aqui está a minha linq:

    public static List<MontaArvoreAcao> CriarListaArvorePdv()       

    {           

    RupturaEntities db = new RupturaEntities();           

    var _listaPdv = (                                   

    from r in db.Ruptura                                   

    join a in db.Apresentacao on r.Codigo_Apresentacao equals (a.Codigo_Apresentacao)         

                   join m in db.Motivo on r.IDMotivo equals (m.IDMotivo) 

                 join p in db.PDV on r.CodigoPDV equals(p.CodigoPDV)         

                     where r.IDMotivo != 6       

                    group r by new { p.Cnpj, loja = p.Descricao, a.Descricao, a.Familia,

    a.Unidade_Negocio, r.IDMotivo, r.DataRuptura } into gr 

                     select new MontaArvoreAcao                                   

    {

                       CnpjDescricao = gr.Key.Cnpj + " - " + gr.Key.loja,                                       

    Descricao = gr.Key.Descricao,                           

               DataRuptura = gr.Key.DataRuptura,                     

                     Familia = gr.Key.Familia,                 

                     IDMotivo = gr.Key.IDMotivo,                     

                     Unidade_Negocio = gr.Key.Unidade_Negocio     

                   }                                 

    ).Distinct().ToList().OrderBy(r => r.Descricao);           

    return _listaPdv.ToList();       

    }


    quarta-feira, 24 de setembro de 2014 18:54

Respostas

  • Boa tarde.

    Tenta incluir Available = MontaArvoreAcao.Count() antes do final do select.

    • Marcado como Resposta pnet quinta-feira, 25 de setembro de 2014 14:23
    quarta-feira, 24 de setembro de 2014 19:42
  • Você não consegue colocar Somatorio = gr.Count()?


         select new MontaArvoreAcao                                   

    {

                       CnpjDescricao = gr.Key.Cnpj + " - " + gr.Key.loja,                                       

    Descricao = gr.Key.Descricao,                           

               DataRuptura = gr.Key.DataRuptura,                     

                     Familia = gr.Key.Familia,                 

                     IDMotivo = gr.Key.IDMotivo,                     

                     Unidade_Negocio = gr.Key.Unidade_Negocio   ,

    Somatorio = gr.Count();  //Isso não funciona?

                   } 

     

    Coloca a estrutura (somente as partes pertinentes) do seus objetos ai

    • Marcado como Resposta pnet quinta-feira, 25 de setembro de 2014 14:23
    quinta-feira, 25 de setembro de 2014 14:09

Todas as Respostas

  • Boa tarde.

    Tenta incluir Available = MontaArvoreAcao.Count() antes do final do select.

    • Marcado como Resposta pnet quinta-feira, 25 de setembro de 2014 14:23
    quarta-feira, 24 de setembro de 2014 19:42
  • Como eu faço isso? Tentei e dá erro no Count. Para isso, tenho que criar mais uma propriedade em MontaArvoreAcao, chamada Available, é isso? Antes do final do Select, entendo ser a a última linha do Select. Dessa forma dpá erro.
    quinta-feira, 25 de setembro de 2014 11:09
  • Você não consegue colocar Somatorio = gr.Count()?


         select new MontaArvoreAcao                                   

    {

                       CnpjDescricao = gr.Key.Cnpj + " - " + gr.Key.loja,                                       

    Descricao = gr.Key.Descricao,                           

               DataRuptura = gr.Key.DataRuptura,                     

                     Familia = gr.Key.Familia,                 

                     IDMotivo = gr.Key.IDMotivo,                     

                     Unidade_Negocio = gr.Key.Unidade_Negocio   ,

    Somatorio = gr.Count();  //Isso não funciona?

                   } 

     

    Coloca a estrutura (somente as partes pertinentes) do seus objetos ai

    • Marcado como Resposta pnet quinta-feira, 25 de setembro de 2014 14:23
    quinta-feira, 25 de setembro de 2014 14:09
  • Não há como retornar _listaPdv.Count(); ???
    quinta-feira, 25 de setembro de 2014 14:13
  • Na mosca, gustavo. Era isso mesmo. Luiz lopes, a mesma coisa digo para você. Ambos acertaram, como a primeira pergunta foi do Luiz, vou marcar a del, ok Gustavo. Só por uma questão de quem primeiro só isso, mas ambos me auxiliaram.
    quinta-feira, 25 de setembro de 2014 14:22
  • Consegui marcar as duas, achei que não dava.

    quinta-feira, 25 de setembro de 2014 14:23