No meu ocorreu um erro ao criar uma sessao e não consigo entender o que aconteceu:
A sessão FilmeId:1 e CinemaId:1 já estava criada.
Mas estou tentando com outras combinaçãoes e gera o erro 500 e no Get do filme fica como vazio

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
No meu ocorreu um erro ao criar uma sessao e não consigo entender o que aconteceu:
A sessão FilmeId:1 e CinemaId:1 já estava criada.
Mas estou tentando com outras combinaçãoes e gera o erro 500 e no Get do filme fica como vazio

Obs.: Descobri que faltava um relacionamento. Gerei todas as migrations do zero para pegar a nova atualização, mas ainda assim o erro persiste. No postman diz sobre esse "FilmeId1", não criei esse campo na tabela sessões, mas olhei na migration e parece que foi criada automaticamente:
rodando mais um Update-Database é informado:
Joguei este erro no ChatGpt, mas mesmo assim, não entendi como solucionar,já que meu Context não parece ter nada de errado:
public class FilmeContext : DbContext
{
public FilmeContext(DbContextOptions<FilmeContext> opts) : base(opts)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Sessao>()
.HasKey(sessao => new {sessao.FilmeId,
sessao.CinemaId});
modelBuilder.Entity<Sessao>()
.HasOne(sessao => sessao.Cinema)
.WithMany(cinema => cinema.Sessoes)
.HasForeignKey(sessao => sessao.CinemaId);
modelBuilder.Entity<Sessao>()
.HasOne(sessao => sessao.Cinema)
.WithMany(filme => filme.Sessoes)
.HasForeignKey(sessao => sessao.FilmeId);
modelBuilder.Entity<Endereco>()
.HasOne(endereco => endereco.Cinema)
.WithOne(Cinema => Cinema.Endereco)
.OnDelete(DeleteBehavior.Restrict);
}
public DbSet<Filme> Filmes { get; set; }
public DbSet<Cinema> Cinemas { get; set; }
public DbSet<Endereco> Enderecos { get; set; }
public DbSet<Sessao> Sessoes { get; set; }
}
Olá
O erro 500 geralmente é um erro interno do servidor, o que indica que algo deu errado no lado do servidor (neste caso, provavelmente no seu código).
Vamos tentar resolver isso juntos. O erro pode estar ocorrendo devido a várias razões, mas de acordo com o contexto da aula, uma possibilidade é que você esteja tentando criar uma sessão com uma combinação de FilmeId e CinemaId que já existe, o que violaria a restrição de chave primária composta que definimos para a entidade Sessão.
No código da aula, definimos que a chave primária da tabela Sessão é composta pelos campos FilmeId e CinemaId:
builder.Entity<Sessao>()
.HasKey(sessao => new { sessao.FilmeId, sessao.CinemaId });
Isso significa que cada combinação de FilmeId e CinemaId deve ser única. Se você tentar inserir uma nova sessão com uma combinação de FilmeId e CinemaId que já existe na tabela Sessão, o Entity Framework irá lançar um erro.
Aqui está um exemplo prático do que pode estar acontecendo:
Para resolver esse problema, você deve garantir que cada sessão que você tenta criar tem uma combinação única de FilmeId e CinemaId.
Espero ter ajudado e bons estudos!