Customizando foreign keys many-to-many efcore 5

O entity framework core em sua versão 5 permite o mapeamento de entidades n:n sem a criação de uma tabela adicional. Muitas vezes o nome dos atributos (foreign keys) da tabela resultante do relacionamento não agradam aos programados, contudo é possíve alterar o nome dos atributos tanto quanto o nome da tabela.

Veja a seguir:

 protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<Entidade>(x =>
            {
                x.HasMany(x => x.EntidadeRelacionada)
                    .WithMany(x => x.AtributoDeNavegacao)
                    .UsingEntity<Dictionary<string, object>>("NomeDaTabela",
                        x => x.HasOne<Entidade1Relacionada>().WithMany().HasForeignKey("NomeDoAtributoDeRelacionamento1"),
                        x => x.HasOne<Entidade2Relacionada>().WithMany().HasForeignKey("NomeDoAtributoDeRelacionamento2"),
                        x => x.ToTable("NomeDaTabela"));
            });
        }

Compartilhe!

Deixe um comentário