Array
(
)

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

Pjava
   - 22 set 2014

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):
#Códigovar 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:
#Códigoforeach (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
   - 23 set 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?

Pjava
   - 23 set 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.