1
resposta

[Dúvida] Endereço Não Existir Sem Cinema

Como eu faria o mapeamento caso eu quisesse que o endereço não existisse sem um cinema?

1 resposta

Olá, Anderson!

Nesse caso, você está falando de uma relação de dependência onde o endereço só faz sentido se estiver associado a um cinema.

No exemplo que você está estudando, o cinema precisa de um endereço para existir, mas o endereço pode existir sem o cinema. Isso é representado no código onde o "EnderecoId" é incluído na classe "Cinema":

public class Cinema
{
    [Key]
    [Required]
    public int Id { get; set; }
    [Required(ErrorMessage = "O campo de nome é obrigatório.")]
    public string Nome { get; set; }
    public int EnderecoId { get; set; }
    public virtual Endereco Endereco { get; set; }
}

Porém, na classe "Endereco", não há uma referência direta ao "CinemaId", pois o endereço pode existir sem estar vinculado a um cinema:

public class Endereco
{
    [Key]
    [Required]
    public int Id { get; set; }
    public string Logradouro { get; set; }
    public int Numero { get; set; }
    public virtual Cinema Cinema { get; set; }
}

Se você deseja que um endereço não exista sem um cinema, você precisaria garantir que um endereço só seja criado quando um cinema for criado. Isso pode ser feito incluindo a criação do endereço dentro do método de criação do cinema, por exemplo. Além disso, você poderia adicionar uma restrição no banco de dados para garantir que cada endereço esteja associado a um cinema.

No entanto, é importante lembrar que essa abordagem pode limitar a flexibilidade do seu banco de dados. Por exemplo, se no futuro você quiser adicionar uma nova entidade que também tenha um endereço (como uma "Loja"), você teria que modificar a estrutura do seu banco de dados.

Espero ter ajudado e bons estudos!