Estou tendo problemas em criar uma solução para essa regra de negócios.
Tenho atualmente 1 Cliente, 1 Correspondente e 1 Loja. Ambos utilizam a mesma tabela de Endereço. Como as tabelas cliente,correspondente e loja não podem ter o Id auto geravel, resolvi usar GUID para não ocorrer erro de duplicidade na tabela Endereço. Nesse caso a tabela endereço deve ficar assim:
EnderecoId - ReferenceId - Logradouro
1 - GuidDoCorrespondente - Rua tal tal tal
2 - GuidDaLoja - Rua tal tal tal
3 - GuidCliente - Rua tal tal tal
Porém estou tendo problemas para mapear as entidades. Segue o modelo que estou tentando fazer:
EnderecoMap()
{
HasKey(x => x.EnderecoId);
Property(x => x.Logradouro)
.IsRequired()
.HasMaxLength(60);
Property(x => x.Numero)
.IsRequired();
HasRequired(x => x.Correspondente)
.WithMany(x => x.Enderecos)
.HasForeignKey(x => x.ReferenceId);
HasRequired(x => x.Cliente)
.WithMany(x => x.Enderecos)
.HasForeignKey(x => x.ReferenceId);
HasRequired(x => x.Loja)
.WithMany(x => x.Enderecos)
.HasForeignKey(x => x.ReferenceId);
}
Sempre recebo esse erro:
"The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.Endereco_dbo.Cliente_ReferenceId\". The conflict occurred in database \"Correspondente\", table \"dbo.Cliente\", column 'ClienteId'.\r\nThe statement has been terminated."
Se alguém poder me ajudar agradeceria muito!