1 回答

TA贡献1934条经验 获得超2个赞
类别可能有多个产品。
那么它不是one-to-one,而是它one-to-many和你的模型类应该如下所示:
public class Categoria
{
[Key]
public int id { get; set; }
public string descricao { get; set; }
public string observacao { get; set; }
public int status { get; set; }
public virtual ICollection<Produto> produtos { get; set; }
}
public class Produto
{
[Key]
public int id { get; set; }
[ForeignKey("categoria")]
public int categoriaId {get; set;}
public string descricao { get; set; }
public string observacao { get; set; }
public int status { get; set; }
public decimal valorVenda { get; set; }
public virtual Categoria categoria { get; set; }
}
而且您不需要任何FluentAPI配置。所以删除modelBuilder.Entity<Produto>()配置。而且您也不需要分别为Produto和两个不同的 DbContext Categoria。而是让你DbContext的如下:
public class ApplicationDbContexto : DbContext
{
public ApplicationDbContexto(DbContextOptions<ApplicationDbContexto> options) : base(options)
{
}
public DbSet<Categoria> Categorias { get; set; }
public DbSet<Produto> Produtos { get; set; }
}
您的查询应如下所示:
[HttpGet]
public async Task<ActionResult<IEnumerable<Produto>>> GetProdutos()
{
return await _context.Produtos.Include(p => p.categoria).ToListAsync();
}
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报