Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

estado nao muda

using(var context = new LojaContext()) { var prod = context.Produtos.ToList();

            prod.ForEach(p => Console.WriteLine(p));


            Console.WriteLine("--------------------");

            var ent = context.ChangeTracker.Entries();

            foreach (var item in ent)
            {
                Console.WriteLine(item.State);
            }

            var primeiro = prod.Last();

            primeiro.Nome = "velozes e furiosos";

            Console.WriteLine("--------------------");

            foreach (var item in ent)
            {
                Console.WriteLine(item.State);
            }


            // rastreia cada mudança na instancia do contexto//



        }
1 resposta
solução!

Olá Luan, tudo certo?

O problema está nesta linha aqui: var ent = context.ChangeTracker.Entries();.

Quando definiu essa variável, ela recebe um valor e não é alterada nenhuma outra vez. Aí, quando faz a segunda chamada da variável ent, o foreach() percorre os valores antigos. Por isso que o Daniel chama context.ChangeTracker.Entries() dentro do próprio foreach(). Com isso, é feita a primeira chamada de como está no banco de dados e na segunda faz a chamada com o banco já atualizado.

Sugiro que faça igual ele ao invés de declara a variável ent:

foreach (var e in contexto.ChangeTracker.Entries())
{
    Console.WriteLine(e.State);
}

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software