Em sua edição, você menciona 'Várias entidades adicionadas podem ter a mesma chave primária'. erro. Sem saber todos os detalhes do que você está fazendo aqui, parece que você está criando um relacionamento com uma entidade - da qual existem duas no contexto com o mesmo ID. Estas são provavelmente novas entidades que ainda não foram salvas, que é onde eles obtêm um ID gerado automaticamente do banco de dados. Se o relacionamento for baseado no ID, haverá alguma ambiguidade porque o Entity Framework não consegue determinar para qual das novas entidades o relacionamento está realmente apontando - ambos têm o ID para o qual o relacionamento está apontando.
Existem duas correções potenciais.
-
Gere um identificador exclusivo e temporário para entidades à medida que são criadas no contexto. O Entity Framework descartará isso à medida que a entidade for salva, mas até esse ponto, ele pode usá-lo para diferenciar uma nova entidade da outra. Eu usei números inteiros negativos para essa finalidade no passado.
-
Não crie os relacionamentos usando IDs, mas sim em referências de entidade. Se o Entity Framework tiver uma referência direta à entidade, ele não precisará passar pelo processo de identificação da entidade com base em identificadores não exclusivos e não deverá ter esse problema.