Filtro em lambda para tela de pesquisa

.NET

C#

ASP.NET

18/07/2017

Em meu projeto, eu preciso criar uma tela de pesquisa que exiba os blogs cadastrados, tem um combobox de categoria, onde eu posso selecionar uma categoria específica ou todas as categorias....

Tenho a seguinte expressão lambda:

 var query = _context.Blog.SingleOrDefaultAsync(m => m.Category == paramCaterory);

Da forma que eu fiz o filtro acima eu não consigo realizar um filtro que me traga todas as categorias, utilizando lambda como eu posso resolver meu problema?
Ricardo Vieira

Ricardo Vieira

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

18/07/2017

Olá, Ricardo. Tudo bem?

O método SingleOrDefaultAsync traz apenas 1 registros (note o "single" no nome). Para resgatar vários registros você pode usar o método Where passando o mesmo filtro.
GOSTEI 0
Ricardo Vieira

Ricardo Vieira

18/07/2017

No caso ficaria desta forma?
var query = _context.Blog.Where(m => m.Category == paramCaterory);


E se eu tiver um combobox categoria onde Todos = 0, Educação = 1, Esportes = 2; Estaria correto se eu fizer desta forma?


var query = _context.Blog.Where(m => m.Title.Contais(paramTitle));

if(status  > 0) //Caso precise trazer uma categoria específica
{
       query = query.Where(m => m.Category == paramCaterory);
}



Quando é realizado a consulta com o banco de dados? Somente quando é executado o método .ToList()?
GOSTEI 0
POSTAR