2
I have the following scenario:
Each entity in this hierarchy has its table. But, now I need to register a Person with a City where she lives.
How to map so I can record a City in a Person?
Classe Pessoa
public abstract class Pessoa
{
public int Id { get; set; }
public Cidade Cidade { get; set; }
}
City Class
public class Cidade
{
...
public int Id { get; set; }
public string Nome { get; set; }
}
Class Individual
public class PessoaFisica: Pessoa
{
...
public string Cpf { get; set; }
}
Class Legal Person
public class PessoaJuridica: Pessoa
{
...
public string Cnpj { get; set; }
}
Mapping Pessoa:
public class PessoaConfiguracao: EntityTypeConfiguration<Pessoa>
{
...
//table
ToTable("pessoa");
//relationships
//CIDADE???
}
Mapping City:
public class CidadeConfiguracao: EntityTypeConfiguration<Cidade>
{
public CidadeConfiguracao()
{
//Key
HasKey(c => c.Id);
//fields
Property(c => c.Nome).HasColumnName("Nome").HasMaxLength(50).IsRequired();
//table
ToTable("cidade");
//relationship
HasRequired<Estado>(s => s.Estado)
.WithMany(s => s.Cidades).HasForeignKey(s => s.IdEstado);
}
}