Usuário com melhor resposta
Entity framework seleção de campo contido em faixa de valores

Pergunta
-
Boa noite pessoal,
Tentei e pensei várias formas de resolver uma seleção a meu ver simples com EF mas não consegui... por isso preciso de uma luz.
Em resumo tenho os seguintes campos na tela do relatório:
chkListarAtivos e chkListarInativos... sendo que é possível selecionar os 2 ou apenas 1 dos valores.
Quero fazer uma seleção dos registros em que o campo ativo (no DB é numérico... 0 ou 1) que estejam dentre os valores selecionados.
Minha seleção é a seguinte:
var clientes = from c in ctx.Cliente join e in ctx.Cidade on c.idCidade equals e.idCidade where e.uf.Equals(estado) orderby c.nome select new { c.codigo, c.nome, c.telefone, cidade = e.nome, e.uf };
Tentei fazer testes como o abaixo:
Mas o estranho é que o resultado da consulta sempre cai no ELSE... ou seja c.ativo == 0chkAtivo.Checked ? c.ativo == 1 : c.ativo == 0
Outra coisa que tentei foi montar uma string com os valores possíveis e testar o campo ativo:
string situacao = "01";
E na consulta colocar isso, que apesar de compilar dá erro que o método ToString() não é reconhecido:
situacao.Contains(c.ativo.ToString())
Alguém teria uma sugestão para me dar?
Wagner Samuel de Oliveira
WSO Software
www.wso.com.br
Respostas
-
Ola Wagner,
se eu entendi vc tem uma lista de checkbox e quer retornar uma consulta com os registros selecionados ?
vc deve armazenar o codigo do cliente nessa checkbox correto (digamos se for ASP.NET na propriedade CommandArgument)
primeiramente vc faria uma consulta na lista de ckbox trazendo os codigos selecionandos:
var selecionados = from checkbox in listadecheckBox
where checkbox.Checked
select (int)checkBox.CommandArgument;ai vc vai ter uma lista de ids para pesquisar no banco...
- Marcado como Resposta Wagner Samuel de Oliveira domingo, 7 de agosto de 2011 00:43
Todas as Respostas
-
Wagner, boa tarde.
Entenda que pro padrão C#, o == se usa para comparação e não para atribuição de valores.
se eu entendi direito a questão, tente assim:
c.ativo = (chkAtivo.Checked ? 1 : 0);
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta AndreAlvesLimaModerator segunda-feira, 25 de julho de 2011 18:55
- Não Sugerido como Resposta Wagner Samuel de Oliveira domingo, 31 de julho de 2011 02:35
- Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator domingo, 31 de julho de 2011 16:12
- Não Sugerido como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator domingo, 31 de julho de 2011 16:12
-
Olá Olavo,
Erro de digitação. Eu fiz o teste com apenas um '='.
Obrigado
Wagner Samuel de Oliveira
WSO Software
www.wso.com.br- Marcado como Resposta Wagner Samuel de Oliveira sábado, 6 de agosto de 2011 03:09
- Não Marcado como Resposta AndreAlvesLimaModerator sábado, 6 de agosto de 2011 23:12
-
Wagner,
Conseguiu solucionar essa questão?
Se sim, por favor, poste aqui como você solucionou para que sirva de ajuda para outras pessoas que tenham essa mesma questão no futuro...
Obrigado pelo apoio...
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Ola Wagner,
se eu entendi vc tem uma lista de checkbox e quer retornar uma consulta com os registros selecionados ?
vc deve armazenar o codigo do cliente nessa checkbox correto (digamos se for ASP.NET na propriedade CommandArgument)
primeiramente vc faria uma consulta na lista de ckbox trazendo os codigos selecionandos:
var selecionados = from checkbox in listadecheckBox
where checkbox.Checked
select (int)checkBox.CommandArgument;ai vc vai ter uma lista de ids para pesquisar no banco...
- Marcado como Resposta Wagner Samuel de Oliveira domingo, 7 de agosto de 2011 00:43
-
Boa noite André e Rui...
Na verdade eu não precisei mais fazer a seleção nos campos que havia citado...
Porém, como não conhecia a técnica apresentada pelo Rui... resolvi testar e deu certinho... por isso marcarei como resposta.
Abraços e obrigado pelo apoio!
Wagner Samuel de Oliveira
WSO Software
www.wso.com.br