Olá pessoal, estou com uma dúvida no mapeamento de entidades no Entity Framework Core.
Tenho as tabelas de Fornecedor, Cliente e Endereço, descritas abaixo, e queria utilizar somente uma tabela para armazenar os endereços, com relação 1:N entre Cliente e Endereço e 1:N entre Fornecedor e Endereço.
Pensei em colocar dois campos no Endereço para guardar o ID e o Tipo do relacionamento, mas não consegui configurar corretamente no método OnModelCreating do contexto.
Também li em alguns fóruns que teria que criar um campo de ID e outro de navegação no Endereço para cada relacionamento que ele tiver, mas acredito que ter esses campos e utilizar somente um em cada registro não seria a forma ideal e "sujaria" a classe. Ainda mais que outros relacionamentos podem surgir, criando mais campos.
Qual seria a forma mais correta de mapear as classes para que o EFC crie as tabelas de forma correta?
public class Cliente
{
public int ID { get; set; }
public string Nome { get; set; }
public string Cpf { get; set; }
}
public class Fornecedor
{
public int ID { get; set; }
public string Nome { get; set; }
public string CNPJ{ get; set; }
}
public class Endereco
{
public int ID { get; set; }
public string Descricao { get; set; }
public string Numero { get; set; }
public string CEP { get; set; }
public LogradouroTipo Logradouro { get; set; }
public string Rua { get; set; }
public string Complemento { get; set; }
}
PS: As classes são só um exemplo.