Pergunta

Eu tenho um auto faz referência à tabela chamado categorias que tem uma coluna parentcategoryid que é anulável.

Quando eu adicionei a tabela para o designer entidade criou duas propriedades de navegação para essa relação e eu nomeado um ParentCategory (o nav prop zero ou 1) e as subcategorias outro nomeados (o * muitos nav prop).

Tudo funciona muito bem exceto quando eu ir mais de um nível de profundidade não pegar os níveis mais profundos.

Então, eu recebo todas as Category.SubCategories mas eu não obter as categorias sob as subcategorias.

Estou faltando alguma coisa? começando a pensar que eu deveria ter ficado com NHibernate. os níveis mais profundos não devem ficar com preguiça carregado?

    return from c in _entities.ContentCategorySet.Include("SubCategories")       
           where c.ParentCategory == null
           orderby c.Importance, c.Title
           select c;
Foi útil?

Solução

É assim que eu imagino a propriedade subcategorias se comportar.

Nível 1

++ Nível 2

++ Nível 2

++ ++ Nível 3

Onde subcategorias propriedade do Nível 1 só retorna Nível 2 itens. Então, para chegar ao nível 3 você acessar o Nível consecutiva 2 itens, em um método recursivo.

Outras dicas

OK, pelo menos parte do problema é

where c.ParentCategory == null

Quando eu remover que eu recebo os níveis mais profundos, mas depois têm subcategorias no nível superior. Eu acho que eu posso apenas filtrá-los após o fato.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top