none
Erro no Update Usando EF4 RRS feed

  • Pergunta

  • Olá pessoal, estou com um erro ao fazer update segue o código:

    EntitiesProdutos proEntity = new LinxIntegracaoData.DataModel.EntitiesProdutos();
                PRODUTOS_GRUPO grupo = new LinxIntegracaoData.DataModel.PRODUTOS_GRUPO();
                GrupoBo grupoBo = new GrupoBo();
                
                var record = proEntity.PRODUTOS_GRUPO.FirstOrDefault(g => g.GRUPO_PRODUTO == "GRUPO LEONARDO");
    
                grupo.GRUPO_PRODUTO = "GRUPO LEONARDO JS";
                grupo.CODIGO_GRUPO = "03";
                grupo.Data_para_transferencia = DateTime.Now;
                grupo.VARIA_TEMPO_TAMANHO = 0;
                grupo.FECHA_CM_AJUSTE_INFLACAO = true;
    
                if (record != null)
                {
                    grupoBo.Upd(grupo);
                    grupoBo.SaveChanges();
                }
                else
                {
                    grupoBo.Add(grupo);
                    grupoBo.SaveChanges();
                }

    o código acima é o responsável por fazer a verificação se existe o objeto no banco e salvar ou inserir.

    o Insert está funcionando porém o update não.

    Erro: An object with a key that matches the key of the supplied object could not be found in the ObjectStateManager. Verify that the key values of the supplied object match the key values of the object to which changes must be applied.

    Eu tenho uma classe abstrata que possui os métodos no caso abaixo é a que faz o update:

     public void Upd(T pEntity)
            {
                entidades.ApplyCurrentValues<T>(pEntity.GetType().Name, pEntity);
            }

    Alguma sugestão?

    abs


    Leonardo Jacques da Silva Desenvolvedor .net

    quarta-feira, 8 de agosto de 2012 16:46

Respostas

  • Você está consultando na variável record e gravando a variável grupo, para o update você tem que preencher e usar a variável record, ou jogar o resultado da consulta na variável grupo.

    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Sugerido como Resposta Pablo Batista Cardoso quinta-feira, 9 de agosto de 2012 12:27
    • Marcado como Resposta Leosul sexta-feira, 10 de agosto de 2012 19:25
    quinta-feira, 9 de agosto de 2012 02:43