Estou enfrentando um problema de conflito de Chave Primária e Chave Estrangeira no SQL Server 2017 Express. Estou usando ASP.NET com Entity Framework Code First (Migrations). O problema é que quando vou adicionar um novo Cliente que é uma Pessoa não adiciona.
O Entity Framework até cria as tabelas com o relacionamento, coloca chave primária nas duas tabelas, coloca também o ClienteId como FK na tabela Cliente, porém não insere no banco.
Erro ocorrido:
SqlException: A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Cliente_Pessoa". O conflito ocorreu no banco de dados "TesteTecnicoDB", tabela "dbo.Pessoa", column 'PessoaId'.
A instrução foi finalizada.
Classe Cliente:
public class Cliente
{
[Key]
[ForeignKey("Pessoa")]
public int ClienteId { get; set; }
public virtual Pessoa Pessoa { get; set; }
public Cliente()
{
Pessoa pessoa = new Pessoa();
ClienteId = pessoa.PessoaId;
}
}
Classe Cliente Configuration:
public class ClienteConfiguration : EntityTypeConfiguration<Cliente>
{
public ClienteConfiguration()
{
HasKey(c => c.ClienteId);
}
}
Classe Pessoa:
public class Pessoa
{
public int PessoaId { get; set; }
public TipoPessoa TipoPessoa { get; set; }
public virtual Cliente Cliente { get; set; }
public virtual PessoaFisica PessoaFisica { get; set; }
public virtual PessoaJuridica PessoaJuridica { get; set; }
public IEnumerable<Endereco> Enderecos { get; set; }
}
Classe Pessoa Configuration:
public class PessoaConfiguration : EntityTypeConfiguration<Pessoa>
{
public PessoaConfiguration()
{
HasKey(p => p.PessoaId);
}
}
Tabelas no Banco:

Alguém sabe como pode ser resolvido este problema?