`` Não estou conseguindo realizar um relacionamento 1:1 no entity Framework Core 2.0.
Tabelas:
1- Pessoa 2-PessoaFisica 3-PessoaJuridica
A tabela de Pessoa a chave é Identity, porém às tabelas de PessoaFisica e PessoaJuridica não são identity. Elas recebem a chave estrangeira de Pessoa. Ou seja, PessoaFisica e PessoaJuridica tem uma FK e PK de Pessoa. Como fazer isso aqui no entity core 2.0 ??
O que está errado ??
public class Pessoa {
public int PessoaId { get; set; } public int Tipo { get; set; }
public virtual PessoaFisica PessoaFisica { get; set; } public virtual PessoaFisica PessoaJuridica { get; set; }
}
public class PessoaFisica {
public string Nome { get; set; } public string RG { get; set; } public string CPF { get; set; } public string Sexo { get; set; }
public virtual Pessoa Pessoa { get; set; }
}
public class PessoaJuridica {
public string RazaoSocial { get; set; } public string CNPJ { get; set; } public string IE { get; set; }
public virtual Pessoa Pessoa { get; set; }
}
public class PessoaConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { // Tabela builder.ToTable("Pessoa");
// Chave primária identity builder.HasKey(p => p.PessoaId);
// Atributos builder.Property(p => p.Tipo)
} }
public class PessoaFisicaConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { // Tabela builder.ToTable("PessoaFisica");
// Aqui nesse ponto tenho que fazer a chave FK e PK // Como fazer ???
// Atributos builder.Property(p => p.Nome).HasColumnName("Nome").HasColumnType("varchar(40)").IsRequired(); builder.Property(p => p.CPF).HasColumnName("CPF").HasColumnType("varchar(11)").IsRequired(); builder.Property(p => p.RG).HasColumnName("RG").HasColumnType("varchar(20)"); builder.Property(p => p.Sexo).HasColumnName("Sexo").HasColumnType("char(1)").IsRequired();
} }
public class PessoaJuridicaConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { // Tabela builder.ToTable("PessoaJuridica");
// Aqui nesse ponto tenho que fazer a chave FK e PK // Como fazer ???
// Atributos builder.Property(p => p.Nome).HasColumnName("RazaoSocial").HasColumnType("varchar(40)").IsRequired(); builder.Property(p => p.CNPJ).HasColumnName("CNPJ").HasColumnType("varchar(14)").IsRequired(); builder.Property(p => p.IE).HasColumnName("IE").HasColumnType("varchar(20)");
} }
```