none
Questão de Certificação MCTS RRS feed

  • Discussão Geral

  • Boa Tarde estou estudando para tirar uma certificação e peguei um testeking para simular a prova...

    em uma questão ele pede para realizar uma consulta com linq em um dataset,

    para filtrar os registro que possuem o campo nome diferente de nulo.

    Na correção está a seguinte resposta:

    from row in ee.Tables[0].AsEnumerable() where row.Field<string>("Name") != null return row

    Reparei no return no final da linha e achei estranho geralmente utiliza-se o select...

    então fui testar no visual studio e ele acusa um erro de sintaxe... Só queria confirmar o testeking está incorreto mesmo ??

    Obrigado!!


    segunda-feira, 25 de junho de 2012 20:38

Todas as Respostas

  • Oi André,

    Essa query não é válida. Uma consulta LINQ deve terminar com um SELECT ou um GROUP.

    O return só é válido em Funcs valorizadas com Delegates, como abaixo:

    Func<string, bool>   filter  = delegate (string s) {
                                       return s.Length == 5; 
                                   };
    
    Func<string, string> extract = delegate (string s) { 
                                       return s; 
                                   };
    
    Func<string, string> project = delegate (string s) {
                                       return s.ToUpper(); 
                                   };
    

    Cuidado com Test Kings...

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    segunda-feira, 25 de junho de 2012 21:13
    Moderador
  • A resposta esta errada, o retorno desta consulta seria um IEnumerable<DataRow>, pelo menos que eu conheça quando trabalhamos com LINQ Query, o mesmo sempre estará atrelado a um SELECT:

    public IEnumerable<DataRow> Teste()
    {
        DataSet ee = new DataSet();
    
        return from row in ee.Tables[0].AsEnumerable()
                where row.Field<string>("Name") != null
                select row;
    }

    Procure fazer testes oficiais, como os da measureup:
    http://www.measureup.com/

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    • Editado Vitor Mendes segunda-feira, 25 de junho de 2012 21:14
    segunda-feira, 25 de junho de 2012 21:13