3
respostas

Como retornar dados de duas tabelas pelo IList<> ?

Galera, fiz o exercicio que tinha o acesso a base de Produtos com as possiveis variaveis de entrada: Nome, Preco, e CategoriaNome.

A dúvida é, como faço para retornar do ProdutoDAO ( que tem o LINQ), varios campos de 2 tabelas?

Exemplo, chamar o DAO para pesquisar algo:

var busca = dao.BuscaporNomePrecoCategoriaNome("Laptop", 9);

E dar um WriteLine do nome da categoria desse produto:



            foreach (var p in busca)
            {
                Console.WriteLine("  nome:  " + p.NomeProduto);
                Console.WriteLine("  preco:  " + p.Categoria.NomeCategoria);
                Console.WriteLine("--------------------------------");
            };

Estou tentando esse código:

            var busca = (from p in contexto.Produto
                         join a in contexto.Categoria on p.CategoriaID equals a.ID
                         select new { nomecate = a.NomeCategor }).ToList();

Até compila, mas dá erro no retorno:

return busca.ToList();

O que estou fazendo de errado? Alguém sabe?

3 respostas

Oi Lucas! Você pode postar aqui o erro que está acontecendo, pra gente poder entender melhor o problema?

Obrigado!

Opa, na vdd, falei errado. Falei que compilava, mas na vdd com o codigo acima nem compila.

Gera erro de compilacao na linha: return busca.ToList(); A msg de erro é:

Creates a List from an IEnumerable . Anonymous Type: 'a is new {String nomecate}

Exceptions: ArgumentNullException

Cannot implicity converto type "System.Collections.Generic.List<> to "system.Collections.Generic.IList. Are you messing a cast?

ps: nao consegui copiar o erro pois ele eh gerado naquelas pop-ups de erro de compilação.

Obrigado pela ajuda.

Lucas, precisamos ver o código desse método (principalmente a assinatura do método) que contém a linha return busca.ToList();. Você pode postar aqui pra gente? Obrigado