EF Core - How to map a field in a table that relates to two fields in another table

0

I have a Person class (Campo PessoaId) that relates to the PersonContaBancaria class (Fields: PersonAccountBancariaId, PersonAccountBank, PersonId and PersonAccountId).

Logic: In the Person table the individuals and legal entities will be stored with different Ids:

Ex:

1 - Peter *

2 - Maria *

3 - Banco Santander

4 - Banco do Brasil

5 - Sicoob

Let's say that in the PersonContaBancaria table, I need to save a Maria account whose bank is Sicoo ... so the PersonId field in the Person table should be related to the PersonId and PersonIndigoBank fields in the PersonContaBank ... >

Ex:

PeopleContactsBankingId = 1

PersonId = 2 (Mary)

Person BankId = 5 (Sicoob)

How do I do this using the Entity Framework Core? Here is my current code:

 public class Pessoa
    {
        public int PessoaId { get; set; }
        public int PessoaTipoId { get; set; }
        public int PessoaSituacaoId { get; set; }

        public virtual PessoaTipo PessoaTipo { get; set; }        
        public virtual ICollection<PessoaContaBancaria> PessoaContasBancarias { get; set; }
    }

public class PessoaContaBancaria
    {
        public int PessoaContaBancariaId { get; set; }
        public int PessoaId { get; set; }    
        public int PessoaBancoId { get; set; }
        public string Agencia { get; set; }
        public string NumeroConta { get; set; }
        public DateTime DataInclusao { get; set; }
        public bool Sistema { get; set; }

        public virtual Pessoa Pessoa { get; set; }
    }

public void PessoaContaBancariaMapping(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<PessoaContaBancaria>()
                .ToTable("tblPessoaContaBancaria");

            modelBuilder.Entity<PessoaContaBancaria>()
                .HasKey(p => new { p.PessoaContaBancariaId, p.PessoaId });

            modelBuilder.Entity<PessoaContaBancaria>()
                .HasOne(p => p.Pessoa)
                .WithMany(p => p.PessoaContasBancarias)
                .HasForeignKey(p => p.PessoaId)
                .IsRequired();

            modelBuilder.Entity<PessoaContaBancaria>()
               .Property(p => p.Agencia)
               .HasColumnName("Agencia")
               .HasColumnType("Varchar(15)")
               .HasMaxLength(15)
               .IsRequired();

            modelBuilder.Entity<PessoaContaBancaria>()
               .Property(p => p.NumeroConta)
               .HasColumnName("NumeroConta")
               .HasColumnType("Varchar(15)")
               .HasMaxLength(15)
               .IsRequired();

            modelBuilder.Entity<PessoaContaBancaria>()
                .Property(p => p.DataInclusao)
                .HasColumnName("DataInclusao")
                .HasColumnType("DateTime")
                .IsRequired();

            modelBuilder.Entity<PessoaContaBancaria>()
                .Property(p => p.Sistema)
                .HasColumnName("Sistema")
                .HasColumnType("Bit")
                .IsRequired();
        }
    
asked by anonymous 04.06.2017 / 23:05

0 answers