none
Retorno lambada expression. RRS feed

  • Pergunta

  • Olá estou com a seguinte dificuldade, tenho uma expressão lambda , em um repositório, segue o código abaixo:

    Minha dificuldade e pegar o retorno dos valores pois ocasiona um erro:

                                                 

        public List<Mservico> Servico() 
            {

                using (var bd = new BdSalaoEntities()) 
                {
                    //var dados = new List<Mservico>();

                    var query = bd.tbl_Servico.Join(bd.tbl_Item,
                                                    s => s.codigo,
                                                    i => i.codigo_servico,

                                                    (s, i) => new
                                                    {
                                                        i.codigo,
                                                        s.servico,
                                                        i.item

                                                    });


                    return query ;


                }

        }


    • Editado _Manigold_ sexta-feira, 6 de junho de 2014 11:47
    sexta-feira, 6 de junho de 2014 01:23

Respostas

  • Fiz da maneira abaixo: 

            public List<Mservico> Servico() 
            {
                using (var bd = new BdSalaoEntities()) 
                {
                    var dados = new List<Mservico>();

                    var query = bd.tbl_Servico.Join(bd.tbl_Item,
                                                    s => s.codigo,
                                                    i => i.codigo_servico,

                                                    (s, i) => new
                                                    {
                                                        i.codigo,
                                                        s.servico,
                                                        i.item

                                                    });
                    foreach (var item in query) 
                    {
                        dados.Add(new Mservico {Codigo = Convert.ToInt64(item.codigo),Servico =                               item.servico,Item = item.item });
                    }
                    return dados;
                }
            }
        }

    Mas não sei se é a melhor pratica.

    Tks.


     Olá Manigold,

     faça o Select diretamente na sua expressão, se fala Lambda rs :

    var query = bd.tbl_Servico.Join(db.tbl_Item,
                                    t1 => t1.codigo,
                                    t2 => t2.codigo_servico,
                                  (t1,t2) => new { t1,t2 })
                               .Select(s => new Mservico
                                   {
                                    Codigo = item.codigo,
                                    Servico = item.servico
                                    })
                                .ToList();

     Assim seria uma boa pratica além de ser executado mais rapidamente !

    • Sugerido como Resposta Daniel Brito br sexta-feira, 6 de junho de 2014 02:21
    • Marcado como Resposta _Manigold_ quarta-feira, 11 de junho de 2014 12:09
    sexta-feira, 6 de junho de 2014 02:21

Todas as Respostas

  • Fiz da maneira abaixo: 

            public List<Mservico> Servico() 
            {
                using (var bd = new BdSalaoEntities()) 
                {
                    var dados = new List<Mservico>();

                    var query = bd.tbl_Servico.Join(bd.tbl_Item,
                                                    s => s.codigo,
                                                    i => i.codigo_servico,

                                                    (s, i) => new
                                                    {
                                                        i.codigo,
                                                        s.servico,
                                                        i.item

                                                    });
                    foreach (var item in query) 
                    {
                        dados.Add(new Mservico {Codigo = Convert.ToInt64(item.codigo),Servico =                               item.servico,Item = item.item });
                    }
                    return dados;
                }
            }
        }

    Mas não sei se é a melhor pratica.

    Tks.


    • Editado _Manigold_ sexta-feira, 6 de junho de 2014 01:39
    sexta-feira, 6 de junho de 2014 01:38
  • Fiz da maneira abaixo: 

            public List<Mservico> Servico() 
            {
                using (var bd = new BdSalaoEntities()) 
                {
                    var dados = new List<Mservico>();

                    var query = bd.tbl_Servico.Join(bd.tbl_Item,
                                                    s => s.codigo,
                                                    i => i.codigo_servico,

                                                    (s, i) => new
                                                    {
                                                        i.codigo,
                                                        s.servico,
                                                        i.item

                                                    });
                    foreach (var item in query) 
                    {
                        dados.Add(new Mservico {Codigo = Convert.ToInt64(item.codigo),Servico =                               item.servico,Item = item.item });
                    }
                    return dados;
                }
            }
        }

    Mas não sei se é a melhor pratica.

    Tks.


     Olá Manigold,

     faça o Select diretamente na sua expressão, se fala Lambda rs :

    var query = bd.tbl_Servico.Join(db.tbl_Item,
                                    t1 => t1.codigo,
                                    t2 => t2.codigo_servico,
                                  (t1,t2) => new { t1,t2 })
                               .Select(s => new Mservico
                                   {
                                    Codigo = item.codigo,
                                    Servico = item.servico
                                    })
                                .ToList();

     Assim seria uma boa pratica além de ser executado mais rapidamente !

    • Sugerido como Resposta Daniel Brito br sexta-feira, 6 de junho de 2014 02:21
    • Marcado como Resposta _Manigold_ quarta-feira, 11 de junho de 2014 12:09
    sexta-feira, 6 de junho de 2014 02:21
  • Mas nesse caso eu preciso armazenar em um list pois estou usando um repositório.

    ,mas de qualquer foma, vou tentar , me desculpe escrevi errado kkkkkkkkkkkkkkk.

    vlw.



    • Editado _Manigold_ sexta-feira, 6 de junho de 2014 11:47
    sexta-feira, 6 de junho de 2014 11:45