[英]how to fetch the data in the foreign key using Entity framework core
我试图通过我的 foreignKey 获取 HttpGet 上的 categoryName,这是 categoryid,这是我的 swagger 的图片,看看我想要实现的目标:
它应该显示 Id 的类别名称。
这是我的 model:
public class ItemTables
{
[Key]
public int Id { get; set; }
public string company { get; set; }
public string availability { get; set; }
public decimal price { get; set; }
public decimal discount { get; set; }
public decimal tax { get; set; }
public string description { get; set; }
public int categoryid { get; set; }
public categories categories { get; set; }
}
public class categories
{
[Key]
public int categoryID { get; set; }
public string categoryName { get; set; }
public ICollection<ItemTables> items { get; set; }
}
我的背景:
public class itemTableDbContext : DbContext
{
public itemTableDbContext(DbContextOptions options) : base(options)
{
}
public DbSet<ItemTables> ItemTables { get; set; }
public DbSet<categories> categories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ItemTables>()
.HasOne<categories>(c => c.categories)
.WithMany(i => i.items)
.HasForeignKey(f => f.categoryid);
//modelBuilder.Entity<itemTable>().ToTable("itemtable");
//modelBuilder.Entity<categories>().ToTable("categories");
}
}
这是我的 itemtableController,它有 [HttpGet]:
public class ItemTableController : ControllerBase
{
private readonly itemTableDbContext _itemTableDbContext;
public ItemTableController(itemTableDbContext itemTableDbContext)
{
_itemTableDbContext = itemTableDbContext;
}
[HttpGet]
public async Task<IActionResult> GetItemsTable()
{
var ItemTable = await _itemTableDbContext.ItemTables.ToListAsync();
return Ok(ItemTable);
}
[HttpPost]
public async Task<IActionResult> AddItemTable([FromBody] ItemTables itemTableRequest)
{
await _itemTableDbContext.ItemTables.AddAsync(itemTableRequest);
await _itemTableDbContext.SaveChangesAsync();
return Ok(itemTableRequest);
}
}
我希望你能得到我想要达到的目标,提前谢谢你,如果你需要更多信息,请告诉我:)
您必须包含类别,以便与您的项目一起检索
var ItemTable = await _itemTableDbContext.ItemTables.Include(i=>i.categories).ToListAsync();
您可以查看此文档以了解有关包含方法的更多信息https://learn.microsoft.com/en-us/ef/core/querying/related-data/eager
尖端:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.