Como salvar entidades de relacionamento filho no Entity Framework

Eu tenho um projeto do Entity Framework v1. Eu tenho duas entidades (funções e permissões), que têm um relacionamento muitos-para-muitos. Eu passo um objeto para ser salvo (por meio de uma chamada WCF, não o crio a partir de um contexto), que possui novas entradas no relacionamento muitos para muitos.

Eu uso "context.ApplyPropertyChanges" para atualizar o registro com as novas propriedades. Eu sei que isso não atualiza os relacionamentos. Eu tento fazer umaChildCollection.Adicionar, acrescentar(relatedObject); ouChildCollection.Anexar(relatedObject)

Quando uso o método "Adicionar", recebo o erro de que: O objeto não pode ser adicionado ao ObjectStateManager porque ele já possui uma EntityKey. Use ObjectContext.Attach para anexar um objeto que tenha uma chave existente.

Quando uso o método "Attach", recebo o erro de que: O objeto não pode ser adicionado ao ObjectStateManager porque ele já possui uma EntityKey. Use ObjectContext.Attach para anexar um objeto que tenha uma chave existente.

Estou ficando bastante frustrado e acho que consigo ouvir o Entity Framework rindo de mim.

Alguém sabe como eu posso resolver isso?

MyRole x = context.Roles.FirstOrDefault(a => a.RoleId == this.RoleId);

context.ApplyPropertyChanges("Roles", this);
foreach (MyPermission p in this.Permissions)
{
     x.Permissions.Add(p);
    //  ^ or v
     x.Permissions.Attach(p);
}
context.SaveChanges();

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion