Erro vários objetos com a mesma chave DbContext

Estou recebendo um erro

"Um objeto com a mesma chave já existe no ObjectStateManager. O ObjectStateManager não pode rastrear vários objetos com a mesma chave."

Eu usei esse método em dois lugares. Em primeiro lugar - funciona corretamente, mas no segundo eu tenho erro.

Como decidiu este problema?

Meu método:

public static void UpdateMehod(ModelEntities context, ProcessedFilest processedFiles)
{
    context.Set<ProcessedFiles>().Attach(processedFiles);
    context.Entry(processedFiles).Property(p => p.ID).IsModified = true;
    context.SaveChanges();
}

Eu crio um novo método:

public static void UpdateProtocol (contexto ModelEntities, ProcessedFilesXml processedFilesXml) {var entry = context.Entry (processedFilesXml);

        if (entry.State == EntityState.Detached)
        {
            var set = context.Set<ProcessedFilesXml>();
            ProcessedFilesXml attachedEntity = set.Find(processedFilesXml.ProcessedFileXmlID); 

            if (attachedEntity != null)
            {
                var attachedEntry = context.Entry(attachedEntity);
                attachedEntry.CurrentValues.SetValues(processedFilesXml);
            }
            else
            {
                entry.State = EntityState.Modified; 
            }
        }

        //context.Set<ProcessedFilesXml>().Attach(processedFilesXml);
        //context.Entry(processedFilesXml).Property(p => p.Protocol).IsModified = true;
        //context.SaveChanges();
    }

Mas eu não sei como criar savechanges?