Gostaria de entender como que no código da aula o EF está identificando o que é pra ser PK e o que é para ser FK. Não ficou nenhum pouco explícito como isso ocorre durante a aula.
public class Compra
{
public int Id { get; set; }
public int Quantidade { get; internal set; }
public int ProdutoId { get; set; }
public Produto Produto { get; internal set; }
public double Preco { get; set; }
}
E por que o Add-Migration ignorou a propriedade public Produto Produto { get; internal set; }
na hora de gerar o time-stamp da migration:
migrationBuilder.CreateTable(
name: "Compras",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
Preco = table.Column<double>(nullable: false),
ProdutoId = table.Column<int>(nullable: false),
Quantidade = table.Column<int>(nullable: false)
},