2
respostas

Exercitando

Prezados!

estou tentando pegar no banco de dados, uma lista de produtos que por um range de data.

o codigo a baixo executa perfeitamente se um informar o range corretamente com data e hora, mas se um por exemplo quiser todos os produtos cadastrados no dia 05/02/2021 eu preciso de uma forma de executar o LIKE nas parametros {dataini} e {data}.

como eu poderia executar isso?

public List<Produto> PegarProdutoPorDatas(DateTime dataIni, DateTime dataEnd)
        {
            List<Produto> listascada = _context.DbScada.Where(p=> p.Entrada >= dataIni && p.Entrada <= dataEnd).ToList();
            if (listascada == null)
            {
                return null;
            }
            return List<LerScadaDto>(listascada);
        }
2 respostas

Boa noite , tudo bom?

Já pensou em usar o String.Contains()? aqui, seria necessario converter a data para String, ai ficaria algo como: where entity.Name.Contains("abc")

Ou usar SqlFunctions.PatIndex: var q = EFContext.Products.Where(x => SqlFunctions.PatIndex("%CD%BLUE%", x.ProductName) > 0);

Ou usar SqlMethods.Like: from c in dc.Organization where SqlMethods.Like(c.Hierarchy, "%/12/%") select *;

Dá uma olhada no link abaixo: https://stackoverflow.com/questions/1033007/like-operator-in-entity-framework e também no link: https://docs.microsoft.com/pt-br/dotnet/framework/data/adonet/ef/language-reference/like-entity-sql

Espero ter ajudado, se funcionar blzinha, posta o feedback aqui.

Att

Opa, Obrigado André

tinha achado essa solução com String.Contains() na internet e aplicada no sistema funcionou como queria.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software