🔥 Apps, books, system as a service, podcast and more



LINQ usando IgnoreCase

Olá pessoal, hoje eu vou falar e mostar como criar uma busca mais dinâmica e usando o IgnoreCase do próprio LINQ. O que faz o IgnoreCase? A minha explicação é a seguinte:

  1. Quando eu tenho no database o nome "Mauricio"
  2. Mas eu busco o nome "mauricio"
  3. A diferença é o maiúsculo e minúsculo
  4. Devido a esse problema, o database não retorna os valores desejados.

Problema: busca entre maiúsculo e minúsculo.

Solução: usar o IgnoreCase

Código: C#

Camada: Repository / DAO

Camada de dados: EntityFramework

O código que eu vou mostrar hoje busca por nome ou por e-mail então eu recebo dois parâmetros (string nome, string email).

A primeira linha de código busca os dados e coloca o resultado em uma variável chamada result. Depois os parâmetros são verificados para incluir na condição Where com o ToLower() depois Contains com o parâmetro nome.ToLower(), StringComparison.OrdinalIgnoreCase que ignora se é maiúsculo e minúsculo. Dessa forma, o database retorna os valores que eu preciso.

Depois eu faço o mesmo para o email e no final eu ordeno por nome e retorno a lista esperada e customizada. Veja o código 1.1.

	public List<BudgetCadastroModel> Find(string nome, string email)
	{
        try
        {
            var result = _db.BudgetCadastroDbSet.ToList();

            if (!string.IsNullOrEmpty(nome))
            {
                result = result
                	.Where(x => x.NoCadastro.ToLower().Contains(nome.ToLower(), 
                							StringComparison.OrdinalIgnoreCase))
                 .ToList();
            }

            if (!string.IsNullOrEmpty(email))
            {
                result = result
                .Where(x => x.EmailCadastro.ToLower().Contains(email.ToLower(), 
                							StringComparison.OrdinalIgnoreCase))
                .ToList();
            }

            result.OrderBy(x => x.NoCadastro);

            return result;
        }
        catch (System.Exception ex)
        {
            throw ex;
        }
    }

Código 1.1 - Busca usando o OrinalIgnoreCase

Espero ter ajudado e qualquer dúvida por entrar em contato comigo pelo site mauriciojunior.net.

Sign up to our newsletter

Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.

Top