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.