none
Contornando o erro "não é possível utilizar 2 objetos com mesma chave no StateManager" RRS feed

  • Pergunta

  • Olá amigos, boa noite, gostaria simplesmente de saber se futuramente irei ter algum problema com este código.... utilizei 2 vezes o comando  db.SaveChanges(); e o Detach... para tirar o objeto (estoque) do (StateManager) pois estava dando aquele erro que o StateManager não consegue trabalhar com 2 objetos de mesma chave nele...

    Então pensei da seguinte forma, fazer update em uma respectiva linha da tabela Estoque, salvar a alteração e retira-lo do statemanager com dettach... depois fazer update em outra respectiva linha da tabela (Material), salvar a alteração.

    funcionou legal, mas gostaria de saber se posso ter algum problema com isso.... 

    Desde já agradeço pela atenção...

    Estoque estoque = db.Estoque.Single(est => est.IdEstoque == material.IdEstoque);
                    estoque.IdEstoque = material.IdEstoque;
                    estoque.Quantidade = material.Estoque.Quantidade;

                    db.Estoque.ApplyCurrentValues(estoque);
                    db.SaveChanges();
                    db.Estoque.Detach(estoque);

                    db.Material.Attach(material);
                    db.ObjectStateManager.ChangeObjectState(material, EntityState.Modified);
                    db.SaveChanges();
                    return RedirectToAction("Index"); 
    segunda-feira, 14 de outubro de 2013 03:30

Respostas

Todas as Respostas

  • Pelo visto não!Só confere se ta gravando os dois SaveChanges !!! (os SaveChanges retorna int se retonar maior que 0 porque ta certo)


    Fúlvio Cezar Canducci Dias

    terça-feira, 15 de outubro de 2013 01:41
  • amigo, obrigado pela resposta.... e sim está gravando tudo certinho em ambas tabelas... os 2 savechanges estão funcionando bem!.. e novamente obrigado pela resposta..
    terça-feira, 15 de outubro de 2013 02:20
  • amigo, obrigado pela resposta.... e sim está gravando tudo certinho em ambas tabelas... os 2 savechanges estão funcionando bem!.. e novamente obrigado pela resposta..
    Obrigado a você!

    Fúlvio Cezar Canducci Dias

    terça-feira, 15 de outubro de 2013 16:16