Problemas com lógica para trazer dados de uma lista ou tabela
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):
Minha linq UN:
Veja que realmente não dá certo, da forma que está.
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á.
Pjava
Curtidas 0
Respostas
Pjava
22/09/2014
Fazendo da forma acima postada, só aparece uma única UN para cada Motivo e deveria aparecer todas as UN relacionadas com cada Motivo. Onde eu errei, podem me ajudar?
GOSTEI 0
Pjava
22/09/2014
Corrigindo o post acima. Só trás uma, quando eu digo que o código da Apresentação é igual ao código da lista que está sendo percorrida.
GOSTEI 0