Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método OnModelCreating (2)

Nesta aula o professor implementa o método OnModelCreating. No meu projeto ele já estava implementado de aulas anteriores, então inclui as duas novas linhas dentro do meu método (as duas últimas). Apareceu o erro abaixo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Verifiquei os passos que o monnitor Armano indicou no post anterior e não resolveu. Segue o link do meu projeto, se alguém puder me ajudar agradeço.

https://github.com/betobalmant/ScreenSound

2 respostas

Olá, Carlos!

Pelo erro que você está enfrentando, parece que o método HasMany não está sendo reconhecido corretamente. Isso pode acontecer por algumas razões. Vamos tentar algumas soluções:

  1. Verifique as Propriedades Virtuais: Certifique-se de que as propriedades Generos em Musica e Musicas em Genero estão definidas como virtual. Isso é importante para o Entity Framework.

    public virtual ICollection<Genero> Generos { get; set; }
    
    public virtual ICollection<Musica> Musicas { get; set; }
    
  2. Confirme os Usings: Verifique se você tem todos os using necessários no topo do arquivo ScreenSoundContext.cs. Você deve ter algo como:

    using Microsoft.EntityFrameworkCore;
    using ScreenSound.Modelos; // ou o namespace correto onde estão Musica e Genero
    
  3. Checar a Configuração do Contexto: O método OnModelCreating deve ser configurado corretamente. Certifique-se de que você está chamando Entity<Musica>() antes de HasMany.

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Musica>()
            .HasMany(m => m.Generos)
            .WithMany(g => g.Musicas);
    }
    

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Olá, Armano. O erro desapareceu quando implementei assim o método: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasOne(m => m.Artista) .WithMany(a => a.Musicas) .HasForeignKey(m => m.ArtistaId) .OnDelete(DeleteBehavior.Cascade);

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

}

Valeu;