image

Olá pessoal, hoje eu vou falar e mostrar como fazer um SELECT com like, condição e order usando o Entity Framework com C#. Esse SELECT pode ser usado na API, no Razor e qualquer outra classe.

  • Ferramenta: Visual Studio ou Rider
  • Linguagem: C#
  • Entity Framework

Vai ser bem simples, vamos lá para o código:

	public IEnumerable<Donors> SearchDonors(string name, string year, string type)
	{
		var result = _db.DonorsDbSet
		            .Where(x => x.Name.ToLower().Contains(name.ToLower()) ||
		                x.Type == type ||
		                x.Year == year)
	   		         .OrderBy(x=>x.Name)
	                .ToList();

    	return result;
	}
	

Código 1.1 - Método e SELECT

O método recebe três parâmetros, nome, ano e tipo. Depois disso eu pego o contexto e o nome da variável DataSet e coloco uma condição Where.

Depois disso eu faço uma lambda para pegar o nome da propriedade e comparar, nesse caso faço um like com o Contains(name.ToLower()). Depois disso eu coloco um ou || e assim se um valor não for passado, ele pega o outro. Depois eu verifico o Ano com o ou || e eu posso fazer assim com toda a condição.

Para finalizar eu uso o OrderBy com o campo name usando o lambda .OrderBy(x => x.Name). Como eu quero retornar uma lista, basta coloca o .ToList() para retornar.

Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo meu site https://mauriciojunior.net.