none
Converter para Inteiro RRS feed

  • Pergunta

  • Bom Dia!

    Estou com um problema, deixa eu explicar.

    Eu tenho uma função em meu controller que vai no banco de dados e verifica no campo "Concluida" qual deles é "false" e me devolve uma lista "dadClienteTemVendaCount".

                Dim dadClienteTemVendaCount = From c In db.ClienteVendas
                                                     Where c.Concluida = False
                                                     Select c.IDClienteVenda
    
    
                For i As Integer = 0 To dadClienteTemVendaCount.Count - 1
    
                    Delete(dadClienteTemVendaCount.ToList.Item(i))
    
                Next

    Esta eu jogo em um "For" e pescorro a lista e mando um por um para a função de deletar do controller.

     Function Delete(id As Integer)
                Dim clientevenda As ClienteVenda = db.ClienteVendas.Find(id)
                db.ClienteVendas.Remove(clientevenda)
                db.SaveChanges()
                Return View("Index", "ClienteVenda")
            End Function
    O problema é que o "For" esta pulando sempre um item da lista, ele deleta um, deixa um.
    Alguém sabe oque pode estar acontecendo?

    Obrigado!

    terça-feira, 27 de novembro de 2012 10:49

Respostas

  • Resolvido, quem tiver o mesmo problema:

    Era o seguinte, sempre que era deletado algum registro do contexto ele atualizava a lista e trazia outro Id para a posição zero, assim deixando ele para trás e fazendo consequentemente o as posições 1, 2,3...

    A minha solução foi fazer um while que sempre vai pegar a posição 0.

    'carrega lista com campos que estiverem "false"
                Dim dadClienteTemVendaCount = From c In db.ClienteVendas
                                                    Where (c.Concluida = False)
                                                     Select c.IDClienteVenda
    
                Do While dadClienteTemVendaCount.Count <> 0
                    Delete(CInt(dadClienteTemVendaCount.ToList.Item(0)))
                Loop

    • Marcado como Resposta Paulo M Dalbosco terça-feira, 27 de novembro de 2012 13:25
    terça-feira, 27 de novembro de 2012 13:25