1
I need to relate the entity Person to Personal Registration using EF Core, but is giving the following error in Migrations:
"The navigation Property 'Personal' cannot be Added to the Entity type 'Personal Signup' because a Property with the same name already exists on Entity type 'Personal Signup'."
I need the relationship to stay that way on the bench:
public class Pessoa
{
public int PessoaId { get; private set; }
public virtual PessoaNatureza PessoaNatureza { get; set; }
public virtual PessoaFisica PessoaFisica { get; set; }
public virtual PessoaJuridica PessoaJuridica { get; set; }
public virtual ICollection<PessoaCadastro> PessoasCadastros { get; set; }
public virtual ICollection<PessoaCadastro> PessoaCadastroPessoasFiliais { get; set; }
public static Pessoa CreateNew (int pessoaId, PessoaNatureza pessoaNatureza)
{
return new Pessoa
{
PessoaId = pessoaId,
PessoaNatureza = pessoaNatureza
};
}
}
}
public class PessoaCadastro
{
public int PessoaId { get; private set; }
public int Id { get; private set; }
public DateTime DataInclusao { get; private set; }
public virtual PessoaTipo PessoaTipo { get; set; }
public virtual Pessoa Pessoa { get; set; }
public virtual Pessoa PessoaFilial { get; set; }
public static PessoaCadastro CreateNew(int pessoaId, int id, Pessoa pessoaFilial, DateTime dataInclusao)
{
return new PessoaCadastro()
{
PessoaId = pessoaId,
Id = id,
PessoaFilial = pessoaFilial,
DataInclusao = dataInclusao
};
}
}
public class PessoaCadastroMap : IEntityTypeConfiguration<PessoaCadastro>
{
public void Configure(EntityTypeBuilder<PessoaCadastro> builder)
{
builder.ToTable("PessoaCadastro");
builder.HasKey(pc => new { pc.Id, pc.PessoaTipo, pc.PessoaId, pc.PessoaFilial });
builder.Property(pc => pc.PessoaTipo)
.HasColumnName("PessoaTipoId")
.HasColumnType("int")
.IsRequired();
builder
.HasOne(p => p.Pessoa)
.WithMany(p => p.PessoasCadastros)
.HasForeignKey(p=> p.PessoaId)
.IsRequired();
builder.Property(pc => pc.PessoaId)
.HasColumnName("PessoaId")
.HasColumnType("int")
.IsRequired();
builder
.HasOne(p => p.PessoaFilial)
.WithMany(p => p.PessoaCadastroPessoasFiliais)
.HasForeignKey(p=> p.PessoaFilial)
.IsRequired();
builder.Property(pc => pc.PessoaFilial)
.HasColumnName("PessoaFilialId")
.HasColumnType("int")
.IsRequired();
}
}
What I need to mess with my mapping for it to work?
These relationships are just like that, what the purpose?
– novic
Yes, they are. I have more tables involved, but it would be unnecessary to quote them here. The Personal table Registration must store the Codes (Id) of my Customers, Suppliers, Affiliates, Carriers, etc. It stores tb, the Branch Code (Personal) so I know which branch belongs to the register.
– Master JR