none
Pesquisa Combina com vários campos RRS feed

  • Pergunta

  • Boa Tarde!

    Estou com dificuldades de fazer uma pesquisa de forma que eu possa filtrar por mais de um campo ao mesmo tempo.

    Exemplo:

    Tenho em minha view dois campos e uma webgrid que vai receber o resultado da pesquisa do campos. Os campos são "Nome Fantasia" e "CNPJ".Se eu filtrar apenas por "Nome Fantasia" ele me trás três registros, que tem o nome igual, mas quando combino com o "CNPJ" ele vai me trazer apenas um.

    Isso seria fáicl de fazer.

    Faço uma pesquisa dom Lambda do Nome, o resultado desta Lambda vai me trazer uma lista que irei filtrar com Lambda novamente com o CNPJ que esta vindo da View.

    Porém eu gostaria de fazer isso de forma mais genérica. Porque desta forma ele fica engeçado e no projeto em produção vou precisar filtrar as vezes 8 filtros juntos.

    Em sistema Desktop com Windows Forms eu iria criar uma classe que fosse receber parametros que pudessem ser variáveis, fazer a pesquisa e retornar o resultado, mas consigo isso com instruções SQL.

    Não consegui fazer isso com LINQ pq não consigo deixar o Contexto de forma que ele possa ser "variável".

    Alguém tem alguma idéia de como posso fazer uma pesquisa com vários campos ao mesmo tempo em MVC?

    Obrigado


    Paulo Marcelo Dalbosco

    sexta-feira, 1 de fevereiro de 2013 18:13

Respostas

  • Um exemplo de filtro:

    var query = _db.Opportunity.AsQueryable();
    
    if (filter.Begin != null)
         query = query.Where(o => o.Close >= filter.Begin);
    
    if (filter.End != null)
         query = query.Where(o => o.Close <= filter.End);
    
    var result = query.ToList();


    http://www.linkedin.com/pub/murilo-kunze/44/191/455


    sábado, 2 de fevereiro de 2013 10:33

Todas as Respostas

  • Um exemplo de filtro:

    var query = _db.Opportunity.AsQueryable();
    
    if (filter.Begin != null)
         query = query.Where(o => o.Close >= filter.Begin);
    
    if (filter.End != null)
         query = query.Where(o => o.Close <= filter.End);
    
    var result = query.ToList();


    http://www.linkedin.com/pub/murilo-kunze/44/191/455


    sábado, 2 de fevereiro de 2013 10:33
  • Era a mesma forma que estava fazendo, mas acho que é a melhor forma no padrão MVC. Acho que da forma que eu fazia no Windows Forms não vou conseguir fazer no MVC.

    Paulo Marcelo Dalbosco

    sábado, 2 de fevereiro de 2013 17:25