Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como mapear uma chave estrangeira utlizando OnModelCreating()

Eu tenho minha classe produto() e minha classe Compra(). Compra possui uma referencia de produto e o EF vai pedir que eu faça uma propriedade

int ProdutoId

para que ele possa mapear essa chave estrangeira. Acontece que eu n gostaria de colocar essa variável lá pois ela é uma variável relacional do banco de dados e gostaria de saber se é possível e como utilizar a função OnModelCreating() do contexto e setar essa chave estrangeira por lá como uma shadow property.

1 resposta
solução!

Oi, Murilo, é possível sim!

No método OnModelCreating() você vai primeiro declarar a shadow property e em seguida vinculá-la com o relacionamento entre produto e compra. Assim:

modelBuilder.Entity<Compra>()
  .Property<int>("ProdutoId");

modelBuilder.Entity<Compra>()
  .HasOne(c => c.Produto)
  .WithMany(p => p.Compras)
  .HasForeignKey("ProdutoId");

Nesse curso mais avançado de EF Core eu discuto essa situação.

Espero que tenha ajudado.

Abraço, Daniel