none
Consulta Linq expressão lambda RRS feed

  • Pergunta

  • Olá, 

    Alguém pode dar uma força, tenho a seguinte consulta

    var numeroPedido = (from p in ctx.pedido
                                            orderby p.numPedido descending
                                            select p).First();

    Essa consulta esta funcionando, somente quando há um registro no banco, caso contrário dá erro....

    Valeu

     

    quarta-feira, 31 de outubro de 2012 12:27

Respostas

  • Este erro acontece pois você tem que atribuir uma instancia do tipo "pedido" neste objeto:

    if (numeroPedido == null)
    {
        numeroPedido = new pedido();
        numeroPedido.numPedido += 1;
    }

    Não sei qual é o nome da sua classe. por isso coloquei "pedido".

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Marcos Bazilio quarta-feira, 31 de outubro de 2012 12:56
    quarta-feira, 31 de outubro de 2012 12:46

Todas as Respostas

  • Marcos,

    O erro acontece pois ao usar o método "First()" e não possuir registros na tabela, não é possível converter o resultado da query em um objeto do tipo "pedido". Tente usa do método "FirstOrDefault()" caso não contenha resultado nesta query um default (nulo) deste objeto sera retornado e basta você validar:

    var numeroPedido = (from p in ctx.pedido
                        orderby p.numPedido descending
                        select p).FirstOrDefault();
    
    if (numeroPedido != null)
    {
        //Seu código
    }


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    quarta-feira, 31 de outubro de 2012 12:32
  • Ok... 

    no banco coloquei o campo numero do pedido como default 0, mas quando chega na outra parte do código 

    if (numeroPedido == null)
                        {
                            numeroPedido.numPedido += 1;
    
                           
                        }

    dá erro ...., tentei colocar no if  numeroPedido.numPedido = 1 e o else ai faço o +=1.. mas continua com o erro

    quarta-feira, 31 de outubro de 2012 12:41
  • Este erro acontece pois você tem que atribuir uma instancia do tipo "pedido" neste objeto:

    if (numeroPedido == null)
    {
        numeroPedido = new pedido();
        numeroPedido.numPedido += 1;
    }

    Não sei qual é o nome da sua classe. por isso coloquei "pedido".

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Marcos Bazilio quarta-feira, 31 de outubro de 2012 12:56
    quarta-feira, 31 de outubro de 2012 12:46
  • Perfeito... obrigado...

    Valeu mesmo....

    quarta-feira, 31 de outubro de 2012 12:56