none
Duvidas com LINQ IQueryable RRS feed

  • Pergunta

  • Boa tarde.

    Vou explicar meu problema. Tenho duas tabelas (Grupos e Privilegios) que tem uma ligação N para N no banco.

    Minha aplicação tem 1 combobox (que quero que seja populado pelos nomes do grupo) e 2 listbox. (uma populada pelo nome dos privilégios na tabela privilégio) e o outro listbox com os privilégios que o Grupo do combobox tenha.

    a aplicação me gerou esse código (para os padrões da aplicação)

     public IQueryable<Grupo> GetGrupo()
    {
    return this.ObjectContext.Grupo;
    }

    mas esse código apenas não me permite escolher qual campo vai ser utilizado (ou me permite?)

    Então fiz algo assim (Para o combobox e para olistbox)

    public IQueryable<aspnet_Roles> NomeDeRoles()

    {
    var query = from a in this.ObjectContext.aspnet_Roles
       select a.RoleName;
    return query;
    }

     
    nisso, tenho o seguinte erro:

    Error 2 Cannot implicitly convert type 'System.Linq.IQueryable<string>' to 'System.Linq.IQueryable<SOS.Web.Grupo>'. An explicit conversion exists (are you missing a cast?) C:\Projetos\SOS\SOS.Web\SosDomainService.cs 224 20 SOS.Web


    Como posso resolver a situação acima? (Ou corrigir meu código, ou usar o código padrão de forma que eu escolha a coluna que irá aparecer)

    E sgundo, como posso popular o itembox baseado na opção que está selecionada no combobox?

    quinta-feira, 19 de agosto de 2010 17:48

Todas as Respostas

  • Prezado,

    RoleName é de que tipo? String? Tente desta forma:

        public IQueryable<string> NomeDeRoles()
        {
          var query = from a in this.ObjectContext.aspnet_Roles
                select a.RoleName;
          return query;
        }
    
    

    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quinta-feira, 19 de agosto de 2010 19:45
    Moderador
  • opa! funcionou sim!

    e a segunda parte kra, vc tem alguma idéia de como posso fazer?

     

    E sgundo, como posso popular o itembox baseado na opção que está selecionada no combobox?



    A resposta foi útil? Marque-a para que outros possam utiliza-la também! Meu Blog: WareHouse
    sexta-feira, 20 de agosto de 2010 12:41
  • Hmm... Ainda não entendi... Pode explicar de uma outra forma?
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 20 de agosto de 2010 20:13
    Moderador
  • assim. Grupo e Role tem uma associação N pra N.

    o segundo listbox vai ser populado com os Roles que o Grupo, que será selecionado via combobox, tem ligados a ele...

    Por exemplo, tenho o grupo Gerente. Ele tem os privilégios (Roles) Adicionar, Ler, Editar. Teremos por exemplo mais o privilégio Excluir.

    Quando eu selecionar o grupo Gerente, no combo box,  apenas os roles que ele tem apareceriam no listbox.


    A resposta foi útil? Marque-a para que outros possam utiliza-la também! Meu Blog: WareHouse
    sexta-feira, 20 de agosto de 2010 20:20
  • Prezado,

    Aí é só você fazer a query das roles baseada em um parâmetro, que no seu caso vai ser o id do grupo... Você poderia passar esse id para a função que retorna as roles (NomeDeRoles) e utilizar esse id num where da sua query...


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sábado, 4 de setembro de 2010 00:23
    Moderador