Pq sessão não tem chave própria? pois da maneira que foi feita diz que não pode ter mais de uma sessão com o mesmo filme e mesmo shopping mas isso não é oq acontece no mundo real. temos várias sessões do mesmo filme no mesmo shopping.
Pq sessão não tem chave própria? pois da maneira que foi feita diz que não pode ter mais de uma sessão com o mesmo filme e mesmo shopping mas isso não é oq acontece no mundo real. temos várias sessões do mesmo filme no mesmo shopping.
Olá Victor.
Tudo bem?
Acho que entendi sua dúvida sobre a configuração das chaves na tabela de Sessão. No mundo real, é comum ter várias sessões do mesmo filme no mesmo cinema, muitas vezes até no mesmo dia, mas em horários diferentes.
No caso do modelo que você está estudando, a chave composta por FilmeId
e CinemaId
impede a duplicidade de sessões para o mesmo filme no mesmo cinema, o que não reflete a realidade operacional de um cinema. Isso acontece porque essa chave composta está agindo como uma restrição que não permite mais de uma sessão para a mesma combinação de filme e cinema, independentemente de outros fatores como horário ou data.
Uma maneira de resolver isso seria introduzir outro campo na tabela Sessão, como Horario
, e incluir esse campo na chave primária. Isso permitiria múltiplas sessões do mesmo filme no mesmo cinema, desde que em horários diferentes. Aqui está um exemplo de como você poderia ajustar o modelo:
public class Sessao
{
public int FilmeId { get; set; }
public virtual Filme Filme { get; set; }
public int CinemaId { get; set; }
public virtual Cinema Cinema { get; set; }
public DateTime Horario { get; set; }
[Key]
public int SessaoId { get; set; }
}
E no ModelBuilder
você configuraria assim:
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Sessao>()
.HasKey(sessao => new { sessao.FilmeId, sessao.CinemaId, sessao.Horario });
}
Essa mudança permitiria que o mesmo filme fosse exibido no mesmo cinema em horários diferentes, refletindo melhor a operação de um cinema real.
Espero ter entendido e conseguido ajudar. Qualquer dúvida manda aqui. Bons estudos.