none
Realizar Query com Like para campo integer RRS feed

  • Pergunta

  • Boa noite pessoal,

    Estou aqui na batalha já a algumas horas e pesquisei muito antes de fazer a pergunta aqui no forum, porém até o momento não consegui resolver meu problema.

    A questão é simples, mas não consigo ver o resultado.

    Necessito que uma Expressão Linq seja utilizada fazendo Like em um campo da minha tabela, porém o campo é Int, com isso não consigo realizar a consulta.

     

    Segue abaixo trecho do meu código, um funcionando com campo varchar e outro com problema sendo o campo int:

    //busca com string
    from c in Banco<Clientes>.List()
    where c.Nome.Contains(pesquisa)
    select c;
    
    //busca com int
    from c in Banco<Clientes>.List()
    where c.Telefone.ToString().Contains(pesquisa)
    select c;
    

    A busca com int retorna:
    LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.

     

    Sugestões?


    Victor Santos
    Email: victor@webfinal.com.br
    MSN: victor.desenv@gmail.com
    Skype: victor.santoss
    WebFinal - www.webfinal.com.br
    Blog: www.webfinal.com.br/blog/
    terça-feira, 15 de março de 2011 01:53

Respostas

  • Amigo, so encontro uma solução para o seu caso agora que é utilizando Entity SQL. Tem coisas que o LINQ faz para você, para todas as outras existe o Entity SQL

    por exemplo:

    var query = Banco<Clientes>.Where(string.Format("cast(it.Telefone as System.String) like '%{0}%'", pesquisa), new ObjectParameter[] { });
    
    


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta VictorSantos terça-feira, 15 de março de 2011 18:12
    terça-feira, 15 de março de 2011 16:16
    Moderador

Todas as Respostas