Usuário com melhor resposta
Consulta genérica com Linq

Pergunta
-
Preciso selecionar registros de uma tabela com uma expressão Linq genérica.
Criei um form onde o usuário seleciona, por exemplo, as profissões desejadas, se a pessoa é cliente ou não etc. Conforme as opções, queria passar para uma string e usar na cláusula where, como no código abaixo:
public PES_PessGeral SelecGenerica(string _crit) { PES_PessGeral pes = new PES_PessGeral(); using(var context = new ADVContext()) { var LPes = (from ps in context.PES_PessGeral select ps); LPes = LPes.Where(_crit); return lPes; } }
O parâmetro _crit poderia conter, por exemplo, "x => x.PF_PJ == 1", ou ""x => x.PF_PJ == 1" && x.ProfisID == 177 && x.ProfisID "= 215", tudo dependendo da escolha do usuário.
- Tipo Alterado Paulo Cezar Santos de Almeida sexta-feira, 27 de outubro de 2017 14:27
Respostas
-
Você pode usar a biblioteca Linq Dynamic Query para isto. Veja em: https://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Paulo Cezar Santos de Almeida sexta-feira, 27 de outubro de 2017 14:28
Todas as Respostas
-
Você pode usar a biblioteca Linq Dynamic Query para isto. Veja em: https://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta Paulo Cezar Santos de Almeida sexta-feira, 27 de outubro de 2017 14:28
-
-
Paulo, edite sua pergunta e mude o tipo de Discussão para Pergunta, e não se esqueça de marcar minha resposta como aceita para mantermos a organização do fórum.
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
-