3
respostas

[Dúvida] Configuração do código inicial

Não entendi muito bem o porque que vamos trocar a config do banco de dados. Porque no meu ponto de vista, o relacionamento entre entidades ficou confuso. Não vamos mais usar o Entity para fazer o gerenciamento?

Nome do método alterado: OnModelCreating (localizado na classe ´ScreenSoundContext do projetoScreenSound.Shared.Dados).

Como está:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Musica>()
        .HasOne(m => m.Artista)
        .WithMany(a => a.Musicas)
        .HasForeignKey(m => m.ArtistaId);

    modelBuilder.Entity<Musica>()
        .HasMany(m => m.Generos)
        .WithMany(g => g.Musica!);
}

A alteração pedida:

protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<Musica>()
            .HasMany(c => c.Generos)
            .WithMany(c => c.Musicas);
    }
3 respostas

Olá Igor, bom dia. Tudo bom?

Entendo a sua dúvida sobre a alteração na configuração do banco de dados e o uso do Entity Framework. A modificação que você mencionou no método OnModelCreating da classe ScreenSoundContext é uma prática comum quando queremos garantir que a configuração padrão das classes ancestrais seja mantida. Ao incluir base.OnModelCreating(modelBuilder);, estamos permitindo que qualquer configuração padrão definida em classes ancestrais também seja aplicada. Isso é especialmente útil quando estamos usando bibliotecas que dependem dessas configurações padrão.

Quanto ao relacionamento entre entidades, a alteração parece simplificar o relacionamento entre Musica e Generos, mantendo um relacionamento de muitos-para-muitos. A diferença principal é a inclusão da chamada ao método da classe base, que pode ser necessária para garantir compatibilidade com outras funcionalidades ou bibliotecas que você usará ao longo do curso.

Sobre o uso do Entity Framework, ele continua sendo utilizado para o gerenciamento do banco de dados. A modificação no código não implica em deixar de usar o Entity Framework, mas sim em ajustar a configuração para se alinhar com as necessidades específicas do projeto ou para compatibilidade com outras bibliotecas.

Espero ter ajudado e bons estudos!

A configuração base.OnModelCreating(modelBuilder), amplia a minha herança, fazendo com que eu consiga herdar mias configurações estabelecida nos meus ancestrais, fazendo assim eu consigo usar outras bibliotecas que serão passadas nos meus ancestrais, mas que sejam de outra origem. É isso, né?

Boa tarde Igor,

É exatamente isso.