none
Usar clausula where no Entity framework RRS feed

  • Pergunta

  • Preciso fazer um filtro na consulta utilizando o "like", estou iniciando no entity framework, alguem sabe como faço

    Até agora consigo preencher sem  o filtro, com o codigo abaixo


        private void PreencheGrdClientes()
        {
    
          mdbdEntities ctx = new mdbdEntities();
          tb_cliente tbCliente = new tb_cliente();
    
          var result = ctx.clienteSet.ToList();
          
    
          grdClientes.DataSource = result;
        }
    
    Obrigado

    quarta-feira, 17 de agosto de 2011 18:07

Respostas

Todas as Respostas

  • Se você colocar:
    where entity.Name.Contains("xyz")
    

    No SQL ele vai virar:
    WHERE Name LIKE '%xyz%'
    


     Referencia:
    http://stackoverflow.com/questions/1033007/like-operator-in-entity-framework 
    Vitor Mendes | Seu feedback é muito importante para todos!
    quarta-feira, 17 de agosto de 2011 18:19
  • Prezado(a),
    Estou migrando seu post para o fórum de Acesso a Dados.
    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
    Obrigado.

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quarta-feira, 17 de agosto de 2011 19:50
    Moderador
  • Olá Marcos,

    Precisei da fazer a mesma coisa que você e resolvi da seguinte forma:

    private void PreencheGrdClientes()

    {

    mdbdEnttities ctx = new mdbdEntities();

    tb_cliente tbCliente = new tb_cliente();

    grdCliente.DataSource = from c in ctx.tb_cliente where c.campoDesejado.Contains(valorDesejado)

                                            select new {c.mostrarCampo1, c.mostrarCampo2, c.mostrarCampo3 .... };

    }

    OBS.: Utilizando o Linq to Entities acima, você pode utilizar vários from caso precise "vincular" tabelas diferentes mas, você deverá fazer as devidas associações entre as tabelas na cláusula where e assim poderá retornar os valores de ambas as tabelas no select... veja o exemplo abaixo:

    dgvCep.DataSource = (from c in db.TbCEPs
                                         from b in db.TbBairros
                                         from l in db.TbLocalidades
                                         from u in db.TbUFs
                                         where c.Idbairro_Cep == b.IdBairro &
                                                    c.IdLocalidade_Cep == l.IdLocalidade &
                                                    c.IdUF_Cep == u.idUF &
                                                    c.Logradouro_Cep.Contains(logradouro_CepTextBox.Text)

                                     select new
                                     {
                                         CEP = c.CEP,
                                         Endereço = c.Logradouro_Cep,
                                         Bairro = b.Bairro_Bai,
                                         Cidade = l.Localidade_Loc,
                                         UF = u.Sigla_Uf
                                     }).ToList();


    Wenderson Sampaio
    sábado, 10 de setembro de 2011 20:46
  • Boa tarde Marcos, caso a alguma resposta acima tenha lhe ajudado, marque como reposta para finalizar o thread.

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/
    segunda-feira, 24 de outubro de 2011 14:50