Sobre SubClassMap
No post anterior criamos as classes.
No exemplo abaixo, estou utilizando Not.Nullable(), isso quer dizer que, campos a serem criados nas respectivas tabelas serão not null.
Você deverá validar os campos conforme suas necessidades.
public class PessoaMap : ClassMap<Pessoa>
{
PessoaMap()
{
Id(c => c.Id).GeneratedBy.Native();
Map(c => c.Nome).Length(60).Not.Nullable();
}
}
public class PessoaFisicaMap : SubclassMap<PessoaFisica>
{
PessoaFisicaMap()
{
Map(c => c.Cpf).Length(14).Not.Nullable();
Map(c => c.DataNascimento).Not.Nullable();
}
}
public class PessoaJuridicaMap : SubclassMap<PessoaJuridica>
{
PessoaJuridicaMap()
{
Map(c => c.Cnpj).Length(14).Not.Nullable();
Map(c => c.DataAbertura).Not.Nullable();
}
}
Na imagem abaixo é possível observar como as tabelas foram criadas no banco de dados.
Microsoft SQL Server Management Studio - 2016