none
Problemas com lógica para trazer dados de uma lista ou tabela RRS feed

  • Pergunta

  • Fiz vários posts aqui e resolvi quase todos os problemas. Porem entendi que o problema estava na lógica que eu montei para trazer o resultado. Sei que eu estou perguntando bastante, mas estou tentando e percebo que falta algo mais em mim para resolver a questão. Tenho uma linq que me trás tudo que eu preciso. Porem da forma que vem, não consigo montar minha tela. Aí, após vários posts e orientações aqui e em outro site, disseram-me que eu exportasse listas separadas para cada situação pretendida. Aí que eu me perdi todo e peço ajuda a vocês. Meu cenário é esse. A primeira linq, me trás todas as informações do meu banco, seguindo alguns critérios. Para cada Motivo, eu trago uma lista de UN. Cada UN uma lista de Família e assim vai. Quando eu fiz a segunda linq para buscar a UN referente a cada Motivo, foi aí que percebi que estava errado. Falta algo que não consigo encaixar. Consegui fazer com que os Motivos e as UN não se repetisse. Mas não consigo listar as UN referentes ao Motivo correspondente. Na linq UN, eu peguei da tabela Apresentação e essa tabela não se relaciona com a Motivo e por isso o pau. Abaixo as linq. A primeira trás tudo e a segunda tentativa de trazer as UN relativas a cada Motivo. Não deu certo.

    Minha linq(tudo):

        var monta_arvore = db.Ruptura
                                       .Where(m => m.IDMotivo != 7)
        
                                       .Select(rup => new MontaArvoreAcao
                                       {
                                           IDRuptura = rup.IDRuptura,
                                           DataRuptura = rup.DataRuptura,
                                           IDMotivo = rup.IDMotivo,
                                           Motivo = rup.Motivo.Motivo1,
                                           IDOrigem = rup.IDOrigem,
                                           CodigoPDV = rup.CodigoPDV,
                                           UF = rup.PDV.UF,
                                           Cidade = rup.PDV.Cidade,
                                           CnpjDescricao = rup.PDV.Cnpj + " - " + rup.PDV.Descricao,
                                           Codigo_Apresentacao = rup.Codigo_Apresentacao,
                                           Unidade_Negocio = rup.Apresentacao.Unidade_Negocio,
                                           Codigo_Unidade_Negocio = rup.Apresentacao.Codigo_Unidade_Negocio,
                                           Franquia = rup.Apresentacao.Franquia,
                                           Familia = rup.Apresentacao.Familia,
                                           Descricao = rup.Apresentacao.Descricao
        
                                       }).ToList().OrderBy(r => r.IDMotivo);

    Minha linq UN:

        foreach (var _idmotivo in monta_arvore)
                    {
                        _listaUnidade = db.Apresentacao
                                        .GroupBy(g => new { Codigo = g.Codigo_Unidade_Negocio, UN = g.Unidade_Negocio})
                                        .Where(un => un.Key.Codigo != "0")
                                        .Select(u => new MontaArvoreAcao
                                        {
                                            Unidade_Negocio = u.Select(s => s.Unidade_Negocio).FirstOrDefault(),
                                            Codigo_Unidade_Negocio = u.Key.Codigo
                                        })
                                        .ToList()
                                        .OrderBy(o => o.Unidade_Negocio);
                    }

    Veja que realmente não dá certo, da forma que está.
    segunda-feira, 22 de setembro de 2014 19:16

Todas as Respostas