c#:como definir a caixa de combinação valuemember de consulta linq
-
14-11-2019 - |
Pergunta
ok, então eu tenho de caixa de combinação whos fonte de dados são os resultados de uma consulta linq
//load QA names
var qaNames =
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { a, Names = a.lastName + ", " + a.firstName };
cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
O problema que estou tendo é quando eu tento adicionar a seguinte linha de código
cboQASupervisor.ValueMember = "ID";
Eu recebo um erro em tempo de execução ele não conseguia converter o tipo anônimo. Como faço para corrigir isso?
Correção:O erro é:
Não é possível ligar o novo valor do membro.Nome do parâmetro:valor
Solução
Você especificar o ID como o campo de valor, mas não têm propriedade ID no seu tipo anônimo.
Supondo que você tenha um ID no seu LUT_Employees objeto:
var qaNames = (
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { a.ID, Names = a.lastName + ", " + a.firstName })
.ToList();
cboQASupervisor.DataSource = qaNames;
cboQASupervisor.DisplayMember = "Names";
cboQASupervisor.ValueMember = "ID";
Outras dicas
Você pode tentar isso:
var qaNames =
from a in db.LUT_Employees
where a.position == "Supervisor" && a.department == "Quality Assurance"
select new { Id = a.ID, Names = a.lastName + ", " + a.firstName };
cboQASupervisor.DataSource = qaNames.ToList();
cboQASupervisor.DisplayMember = "Names";
cboQASupervisor.ValueMember = "Id";
Adicionar .ToList()
para o código, a linha de origem de dados.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow