none
LINQ varias clausulas no where RRS feed

  • Pergunta

  • Olá amigos,

    tenho 10 filtros para aplicar em um consulta LINQ / lambda onde o usuário pode escolher os 10 filtros ou nenhum.

    na SQL eu ia testando cada um dos filtros e concatenando a clausula e depois eu testava se clausura <> "" eu aplicava na SQL.

    agora com o LINQ não estou conseguindo fazer essa concatenação de filtros.

       

            Dim ParamFone As String = "11"
            Dim ParamEmail As String = "127"

            Dim predicate = PredicateBuilder.[True](Of Pessoa)()
            Dim innerPredicate = PredicateBuilder.[True](Of Pessoa)()

            innerPredicate = innerPredicate.[And](Function(s) s.Telefone.Contains(ParamFone))
            predicate = predicate.[And](innerPredicate)

    esse código da erro: Falha na resolução de sobrecarga porque nenhum 'And' acessível aceita este número de argumentos.

            

            Dim predicate As Func(Of Pessoa, Boolean) = Nothing
            Dim predicate2 As Func(Of Pessoa, Boolean) = Nothing
            If String.IsNullOrEmpty(ParamFone) = False Then
                predicate = (Function(s) s.Telefone.Contains(ParamFone))
            End If
            If String.IsNullOrEmpty(ParamEmail) = False Then
                predicate2 = (Function(s) s.Email.Contains(ParamEmail))
            End If

    result = ListaPessoas.Where(predicate)  '  não da para incluir o predicate2

    se alguem poder ajudar, desde já agradeço


    Kleisson Maximiano de Oliveira Softmax soluçoes em Sistema



    • Editado Maxcim terça-feira, 8 de abril de 2014 16:11
    terça-feira, 8 de abril de 2014 15:58