1
resposta

[Dúvida] [.Net]Relacionamento ManyToMany ( Violação de chave)

Ola estou recebendo este erro , acho que ele ao buscar esta tentando criar um novo registro de tag , mas utilizando os dados da já existente pode ser isso este erro só ocorre quando estou tentanto relacionar uma tag existente a uma nova materia , quando passo uma tags que não existe ele funciona normal a relação !! https://prnt.sc/8zugkSo-i0n8 https://prnt.sc/rhi1Lbr4gtl0 https://prnt.sc/6brkPTAEQCAP

1 resposta

Olá, Bruno!

Pelo que você descreveu, parece que o erro está ocorrendo porque o sistema está tentando criar um novo registro com uma tag que já existe no banco de dados, o que está gerando uma violação de chave.

Em um relacionamento ManyToMany no .Net, quando você tenta associar uma entidade existente a uma nova, é necessário garantir que a entidade existente não seja recriada. Para isso, você deve buscar a entidade existente no banco de dados e, em seguida, adicionar essa entidade ao novo objeto que está sendo criado.

Por exemplo, se você tem uma entidade "Tag" e uma entidade "Materia", e está tentando associar uma "Tag" existente a uma nova "Materia", você deve fazer algo assim:

var tagExistente = _context.Tags.Find(idTagExistente);
var novaMateria = new Materia { /* inicialize a nova matéria aqui */ };
novaMateria.Tags.Add(tagExistente);
_context.Materias.Add(novaMateria);
_context.SaveChanges();

Dessa forma, você está adicionando a tag existente à nova matéria, e não criando uma nova tag.

Lembre-se, este é um exemplo genérico e pode precisar ser ajustado para se adequar ao seu código específico.

Espero ter ajudado e bons estudos!