Ir para conteúdo

Arquivado

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

hebinhopassamani

[Resolvido] Linq com Object

Recommended Posts

Pessoal, tenho a seguinte situação:

 

 

    Private _Lista As Object
    
    Public Property Lista() As Object
        Get
            Return Me._Lista
        End Get
        Set(ByVal value As Object)
            Me._Lista = value
        End Set
    End Property

Dim dt As New DataAccess(DataAccess.bancos.BancoDados)

dt.openConnection()

Me.Lista = Usuario.getListaUsuario(dt)

dt.closeConnection()

Dim usuarios = From us In Lista _
               Where us.Nome Like "A*" _
               Select us.Nome _
               Order By us.Nome

Mas não está aceitando pois diz que Lista, que é um object, não é Queryable. não sei se teria como fazer ela ser queryable ou se existe um outra solução para o que eu quero que é:

 

tenho um web user control que tem um atributo que é uma lista, mas essa lista é genérica pode ser um lista de vários objetos, Usuário, Notas fiscais, Produtos etc... mas todos esses objetos tem a propriedade NOME e gostaria de fazer um filtro, com Like Nome, genérico em cima dessa lista independente do tipo de objeto, por isso coloquei List(of Object)

 

Como faria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não posso pois deixaria de ser um componente. Veja como foi resolvido:

 

Mudei o Tipo do Atributo Lista, de "Object" para "List(Of Object)", dessa forma o LINQ aceita a querie sobre "List(Of Object)"

 

Agora meu componente tem um atributo chamado Lista que é uma lista de qualquer objeto que se queira passar, Lista de "Usuários", Lista de "Produtos", etc...

 

O problema era que um List(Of Usuario) não podia ser convertido para um List(Of Object), e isso foi corrigido assim:

 

Me.Lista = Usuario.getListaUsuario(dt).Cast(Of Object).ToList

 

 

Com isso, desde que meus objetos passados para o meu componente tenham um atributo chamado Nome, eles serão filtrados com like, independente de qual objeto seja.

 

Não sei se expliquei direito. mas vlw..

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.