Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pcclrocks

[Resolvido] Linq - usar parametro do tipo string na condição wher

Recommended Posts

boa tarde.

gostava de saber como usar uma string passada como parametro para filtrar dados na query Linq.

estou a fazer assim, mas dá erro:

dim conditon as string = "myArticle.AGroupId = 1"

Public Shared Function GetByCondition(ByVal condition As String) As IQueryable(Of DataContext.Article)

           Dim dbObservatorio As New DataContext.ObservatorioDataContext
           Dim data = From myArticle In dbObservatorio.Articles _
                      Where (condition) _
                      Select myArticle
           Return data

       End Function

se escrever «Where myArticle.AGroupId = 1» na query, ela funciona!

Como posso dar a volta a isto?

fica aqui uma imagem do erro.

errot.png

Agradeço qualquer ajuda.

 

Resolvido.

Em vez de usar uma string, usei um arraylist.

Ficou assim:

Dim arrayListInfo As New System.Collections.ArrayList()
           arrayListInfo.Add("-1") 'ano
           arrayListInfo.Add("-1") 'yearmax
...
    If searchParameters.Ano <> String.Empty Then
               arrayListInfo.Item(0) = searchParameters.Ano.ToString
    End If
    If searchParameters.AnoFim <> String.Empty Then
               arrayListInfo.Item(1) = searchParameters.AnoFim.ToString
    End If
  ...
           Dim artigos As IQueryable(Of DataContext.Article)
           Try
               artigos = DBLayer.Articles.GetByCondition1(arrayListInfo)
           Catch ex As Exception
               artigos = Nothing
           End Try

Assim declarei os parametros de pesquisa e chamei ometodo Linq

Metodo Linq

Public Shared Function GetByCondition1(ByVal condition As ArrayList) As IQueryable(Of DataContext.Article)


           Dim dbObservatorio As New DataContext.ObservatorioDataContext
           Dim dataTodos = From myArticle In dbObservatorio.Articles _
                      Select myArticle
           If condition.Item(0) <> "-1" Then
               Dim data = From myarticle In dataTodos _
                           Where myarticle.ADate = Long.Parse(condition.Item(0)) _
                           Select myarticle
               dataTodos = data
           End If
           If condition.Item(1) <> "-1" Then
               Dim data = From myarticle In dataTodos _
                           Where myarticle.AYearMax = Long.Parse(condition.Item(1)) _
                           Select myarticle
               dataTodos = data
           End If

Return DataTodos

Aqui fica uma boa maneira de usar parametros de pesquisa com o Linq.

Gostaram?

Devagar se vai ao longe!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.