Como eu faria o mapeamento caso eu quisesse que o endereço não existisse sem um cinema?
Como eu faria o mapeamento caso eu quisesse que o endereço não existisse sem um cinema?
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!