none
Dúvida com IEnumerable

    Pergunta

  • Tenho isso:
    public IEnumerable<DeficiencyClassification> GetClassificationId(int _deficiencyId)
            {   
                return _unitOfWork.DeficiencyClassificationRepository.Get(e => e.DeficiencyId == _deficiencyId);
            }

    Preciso pegar um apenas aqui:
    DeficiencyClassificationId = _deficiencyClassificationService.GetClassificationId(Convert.ToInt32(item.Value)).FirstOrDefault()

    Mas está dando erro.
    Canno implicitly convert type 'bla-bla-bla' to int

    Como eu resolvo isso?
    segunda-feira, 22 de julho de 2013 17:52

Todas as Respostas

  • Na sua variável que conterá o valor único deverá ter como tipo a classe DeficiencyClassification ficando assim :

    DeficiencyClassification DeficiencyClassificationId = _deficiencyClassificationService.GetClassificationId(Convert.ToInt32(item.Value)).FirstOrDefault();
    

    Se lhe serviu marque como resposta.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    segunda-feira, 22 de julho de 2013 18:15
  • Não resolveu
    segunda-feira, 22 de julho de 2013 18:36
  • Beleza tente assim então : 

    DeficiencyClassification DeficiencyClassificationId = _deficiencyClassificationService.GetClassificationId(Convert.ToInt32(item.Value)).ToList().FirstOrDefault();

    O fato é que IEnumerable é uma interface agora que coloquei .ToList() virou algo concreto. Tente ai e retorne dizendo se deu certo . Coloquei um .ToList()  antes do FirstOrDefault.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    segunda-feira, 22 de julho de 2013 18:41
  • Verifique se a sua variável "DeficiencyClassificationId" está com o tipo "DeficiencyClassification", pois o que o seu método retornará é um IEnumerable<DeficiencyClassification>.
    segunda-feira, 22 de julho de 2013 18:46
  • Qual o tipo que você definiu sua variavel DeficiencyClassificationId 
    segunda-feira, 22 de julho de 2013 19:06
  • Só uma pergunta. Em realidade eu preciso atribuir esse ID de acordo com o ID da Deficiência. O sistema estava assim. Preenchia a lista de deficiência. Não havia ainda Classificação. Se eu em algum lugar preenchera lista de Classificação, teria como eu descarregar na lista já preenchida, mas atribuindo a cada ID da deficiencia o ID correspondente da Classificação? É possível isso? Como?
    segunda-feira, 22 de julho de 2013 19:53
  • Funcionou o que você queria antes ?

    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    segunda-feira, 22 de julho de 2013 19:58
  • O DeficiencyClassification é int e se for fazer um cast no método, dá pau.
    segunda-feira, 22 de julho de 2013 20:07
  • Mude para isso então :

    int DeficiencyClassificationId = _deficiencyClassificationService.GetClassificationId(Convert.ToInt32(item.Value)).ToList().FirstOrDefault().IdCategoria;
    
    // Estou simulando que há um IdCategoria na Classe DeficiencyClassification

    Veja se funciona


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    segunda-feira, 22 de julho de 2013 20:11
  • Nada.

    Como eu faço para dar um foreach ou for e ir pegando cada valor, ou seja, jogar para uma lista e depois ir pegando e adicionando. Dentro desse código

    deficiencies.Add(new EmployeeDeficiency
                            {
                                EmployeeId = employee.EmployeeId,
                                DeficiencyId = Convert.ToInt32(item.Value),
                                DeficiencyClassificationId = _deficiencyClassificationService.GetClassificationId(Convert.ToInt32(item.Value)) ==> Aqui
                            });

    segunda-feira, 22 de julho de 2013 21:00
  • Cara você pode no retorno do seu método colocar o take

            public int GetClassificationId(int _deficiencyId)
            {  
                int _classificationId = 0;
                DeficiencyClassification _classification = _unitOfWork.DeficiencyClassificationRepository.Where(e => e.DeficiencyId.Equals(_deficiencyId)).Take(1).FirstOrDefault();

                if (_classification != null)
                    _classificationId = _classification.ClassificationId;

                return _classificationId;
            }

    Lembrando que pode retornar nulo,

    verifique se sua lista esta carregada antes _unitOfWork.DeficiencyClassificationRepository.


    Ricardo Oliveira

    terça-feira, 23 de julho de 2013 15:50