none
Consulta Linq tipo anonimo RRS feed

  • Pergunta

  • Pessoal,

    Estou com o seguinte problema em uma consulta linq com retorno de tipo anonimo.
    No meu FORMULARIO eu coloco a consulta Linq como abaixo e consigo fazer um FOREACH do resultado dessa consulta. Segue o exemplo:

       DadosDataContext ctx = new
     DadosDataContext();
    var query = (from u in ctx.UFs
    select new
    {
    u.ufCodigo,
    u.ufNome
    });

    foreach (var item in query)
    {
    Console.WriteLine(item.ufCodigo);
    Console.WriteLine(item.ufNome);
    }

    Mas o sistema que estou desenvolvendo está em camada e a minha consulta linq fica em uma camada chamada BLL, que retorna um IQueryable, e não consigo dar um foreach nessa consulta. Peguei o tipo da variavel da primeira consulta e o tipo é System.Data.Linq.DataQuery. Não estou conseguindo usar esse tipo.

    Segue o código na BLL:

     public
     class
     ProdutoBLL
    {
    DadosDataContext ctx;

    public ProdutoBLL()
    {
    ctx = new DadosDataContext();
    }

    public IQueryable GetAll()
    {
    var query = (from u in ctx.UFs
    select new
    {
    u.ufCodigo,
    u.ufNome
    });
    return query;
    }
    }

    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quarta-feira, 12 de maio de 2010 12:10

Respostas

  • Henrique.

     

    Dá uma olhada em um artigo que postei. Ele recupera valores de um tipo Anonimo.

    http://www.alexandreminato.com.br/post/2010/05/06/Passando-parametros-com-AnonymousType.aspx


    Minato alexandre.minato@hotmail.com - http://www.alexandreminato.com.br
    segunda-feira, 17 de maio de 2010 13:22

Todas as Respostas

  • Olá Henrique.

     

    Você conseguirá fazer o ForEach na tua lista se a mesma for tipada.

    Exemplo:

          List<Usuarios> oListFiltros = oEntities.Usuarios.Where(x => x.TIPO.Codigo == 1).ToList();
    oListFiltros.ForEach(new Action<Usuarios>(delegate(Usuarios pUsuario)
    {
    // Faz alguma coisa.
    }));


    Abraço, Espero ter ajudado. Caso sim, marque-a como tal.
    quarta-feira, 12 de maio de 2010 16:06
  • Vinicius,

    Hoje eu faco exatamente isso.

    A questão é a seguinte... quando faço uma consulta utilizando linq no Formulário eu consigo percorrer os elementos da lista anomima. Agora qdo eu faço a consulta em uma classe e retorno o resultado eu não consigo percorrer os elementos dessa lista anonima.


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quarta-feira, 12 de maio de 2010 16:48
  • http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/ad6edb95-06db-49f1-ad74-32369d70f629
    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    quarta-feira, 12 de maio de 2010 17:37
    Moderador
  • Henrique.

     

    Dá uma olhada em um artigo que postei. Ele recupera valores de um tipo Anonimo.

    http://www.alexandreminato.com.br/post/2010/05/06/Passando-parametros-com-AnonymousType.aspx


    Minato alexandre.minato@hotmail.com - http://www.alexandreminato.com.br
    segunda-feira, 17 de maio de 2010 13:22