none
Filtro com LINQ TO ENTITY RRS feed

  • Pergunta

  • Olá pessoal,

    Tenho uma aplicação asp.net MVC 3 a qual possuo um BeginForms com alguns campos e combox.
    Ao clicar em pesquisar, ele envia para minha ActionResult na Controller.

    Na minha controle envio os dados para as camadas acima depois das validações até chegar na minha DAL.

    O problema que estou tendo é o seguinte:

    O usuário pode ou não preencher e selecionar os itens exemplo:

    Se ele informar o nome do produto no campo, o sistema precisa buscar os dados em base deste nome, mas se ele não informar nada no nome, deverá trazer todos. Isso vale para os outros parametros dos combos. Eu estou tentando montar uma condição, onde o parametro for null, o filtro seja eliminado.

    Estou tentando fazer isso com LINQ e/ou LAMBDA EXPRESSION, mas não estou conseguindo.

    Sabem se isto é possível somente com 1 procedure?

    Exemplo:

    var dados = ctx.Produtos.Where(p => p.Ativo.Equals(true) && (Filtro 1) && (Filtro 2)).ToList();

    No lugar onde tem o filtro, quero fazer uma validação assim: Se o parametro for null, quero que o filtro seja desconsiderado.

    Estou utilizando LINQ to ENTIY (Entity Framework)

    terça-feira, 15 de janeiro de 2013 17:55

Todas as Respostas

  • Um exemplo. 

    Pesquisa por nome sendo que o Filtro 1 contém o nome ou null e Idade sendo que o filtro 2 contém a idade ou null.

    Where (n=> ( (n.nome == Filtro1)||(Filtro1==null)) and ((n.idade==Filtro2)||(Filtro2==null)) );

    segunda-feira, 21 de janeiro de 2013 19:56