LINQ, tipos anônimos e retorno de dados

Olá pessoal, tudo bom?

Caso já tenham se deparado com a necessidade de realizar o retorno do resultado de uma consulta LINQ que gera tipos anônimos, devem ter notado que essa tarefa não se torna possível, justamente pelo fato do resultado anônimo não corresponder a nenhuma outra classe que você possua em seu projeto.

Pensando nesse caso, resolvi escrever esse post para tentar facilitar um pouco essa situação.

Imagine que você necessite retornar de um método um resultado anônimo que corresponde ao “código do cliente” (código), “nome do cliente” (nome), “cidade do cliente” (cidade) e o “sexo do cliente” (sexo). Essa estrutura certamente não deve fazer parte do seu modelo conceitual do Entity Framework (EF4) e por isso, uma possível solução para realizar o retorno dessa estrutura seria:

1) Crie uma classe em seu projeto que represente a estrutura desejada:


public class ClienteCustomizado
{
   public int codigo { get; set; }
   public string nome { get; set; }
   public string cidade { get; set; }
   public string sexo { get; set; }
}

2) Faça o método que possui a consulta LINQ anônima, retornar uma lista da classe criada no item 1


public List<ClienteCustomizado> RetornaClientes(int codigoRegiao)
{
   using (ERPEntities contexto = new ERPEntities())
   {
      var dados = (from cli in contexto.Clientes
            where cli.Regioes.reg_codigo == codigoRegiao && cli.cliente_ativo == "S"
            select new ClienteCustomizado()
                       {
                          codigo = cli.codigo,
                          nome = cli.nome,
                          cidade = cli.Cidades.nome_cidade,
                          sexo = cli.sexo
                       }).ToList();

      return dados;
   }
}

Viu como é simples?

Grande abraço,
Eduardo Henrique Rizo


Posts relacionados

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , ,
Publicado em ASP.NET, Entity Framework, LINQ

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Erro: o Twitter não respondeu. Por favor, aguarde alguns minutos e atualize esta página.

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: