Usuário com melhor resposta
Condicional dentro de consulta

Pergunta
-
Tenho um linq to entities que retorna alguns dados para um gridview.
preciso que na consulta, retorne o nome de 3 empresas diferentes.
se for EMP1 - retorne empresa A, se for EMP2 - retorne empresa B e se for EMP3 - retorne empresa C
É possível fazer isso com linq to entities?
var dados = from i in ef.Colaboradores
orderby i.CBL_NOME
select new {
i.EMP_SIGLA, i.CBL_CODIGO, i.CBL_SIGLA, i.CBL_NOME, i.CBL_STATUS, i.CBL_CARGO, i.CBL_DTNASC, i.CBL_DTADMISSAO };
No caso, o campo que preciso dessa formatação é o i.EMP_SIGLA.
Se eu tivesse usando gridview normalmente utilizaria o evento ROWDATABOUND mas o controle é customizado e não sei como fazer pelo controle, portanto achei mais facil fazer pela consulta.
Alguém pode me ajudar?
Respostas
-
Fernando, boa tarde
você pode usar uma condicional na sua consulta para isto, por exemplo
var dados = from i in ef.Colaboradores orderby i.CBL_NOME select new { i.EMP_SIGLA.Equals("EMP1") ? "Empresa A" : c.Nome.Equals("EMP2") ? "Empresa B" : "Empresa C", i.CBL_CODIGO, i.CBL_SIGLA, i.CBL_NOME, i.CBL_STATUS, i.CBL_CARGO, i.CBL_DTNASC, i.CBL_DTADMISSAO };
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 30 de abril de 2012 17:04
- Marcado como Resposta Fernando.Jarcen segunda-feira, 30 de abril de 2012 20:45
Todas as Respostas
-
Fernando, boa tarde
você pode usar uma condicional na sua consulta para isto, por exemplo
var dados = from i in ef.Colaboradores orderby i.CBL_NOME select new { i.EMP_SIGLA.Equals("EMP1") ? "Empresa A" : c.Nome.Equals("EMP2") ? "Empresa B" : "Empresa C", i.CBL_CODIGO, i.CBL_SIGLA, i.CBL_NOME, i.CBL_STATUS, i.CBL_CARGO, i.CBL_DTNASC, i.CBL_DTADMISSAO };
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator segunda-feira, 30 de abril de 2012 17:04
- Marcado como Resposta Fernando.Jarcen segunda-feira, 30 de abril de 2012 20:45
-
erro meu, desculpe,
c.Nome = i.EMP_SIGLA
copiei do exemplo e esqueci de mudar.
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
Eu usei uma sintaxe parecida com a sua e deu certo:
dados = from i in ef.Colaboradores
orderby i.CBL_NOME
select new {
Empresa = (i.EMP_SIGLA == "EMP1"?"Empresa A": i.EMP_SIGLA == "EMP2"?"Empresa B":"Empresa C"),
i.CBL_CODIGO, i.CBL_SIGLA, i.CBL_NOME,
status = (i.CBL_STATUS == "A"?"Ativo":"Inativo"), i.CBL_CARGO, i.CBL_DTNASC, i.CBL_DTADMISSAO };o conceito que eu usei foi idêntico ao da função SE do excel.
Dê uma olhada e me diga o q acha
- Sugerido como Resposta Olavo Oliveira NetoModerator segunda-feira, 30 de abril de 2012 17:32
-
ta ótimo :)
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -