Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

várias entidades adicionadas podem ter a mesma chave primária na semente do banco de dados


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.

  1. 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.

  2. 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.