我的 ASP.NET Web API 应用程序在返回数据时遇到一些问题。
我有 2 个模型,省到区作为一对多关系。我按照Microsoft 网站的教程使用预加载
这是我的Province.cs
模型
[Table("province")]
public class Province
{
[Key]
[Column("id")]
public int Id { get; set; }
[Column("displayName")]
public string DisplayName { get; set; }
[Column("code")]
[StringLength(10)]
public string Code { get; set; }
// FKs
public virtual ICollection<District> Districts { get; set; }
}
我的District.cs模特
[Table("district")]
public class District
{
[Key]
[Column("id")]
public int Id { get; set; }
[Column("displayName")]
public string DisplayName { get; set; }
[Column("prefix")]
public string Prefix { get; set; }
[Column("provinceId")]
public int ProvinceId { get; set; }
// FKs
public virtual Province Province { get; set; }
}
在我LocationController.cs
public async Task<ActionResult<IEnumerable<Province>>> GetProvince([FromQuery] Province _province)
{
// Eager Loading
return await _context.province.Include(p => p.Districts).Where(p => p.Id == _province.Id).ToListAsync();
}
当我打电话https://localhost:44346/api/province?id=1或使用id我的数据库中存在的任何内容时。Postman 和我所有的浏览器(MS Edge、Chrome...)都只返回 JSONArray 的一部分。看起来像这样:
[
{
"id": 1,
"displayName": "Hồ Chí Minh",
"code": "SG",
"districts": [
{
"id": 1,
"displayName": "Bình Chánh",
"prefix": "Huyện",
"provinceId": 1
就是这样。只有11行数据。它甚至与 JSON 格式不匹配。
我的预期回报必须是:
[
{
"id": 1,
"displayName": "Hồ Chí Minh",
"code": "SG",
"districts": [
{
"id": 1,
"displayName": "Bình Chánh",
"prefix": "Huyện",
"provinceId": 1
},
{
...
},...
},...
]
或者至少是正确的 JSON 格式。
我之前的 2 个 API 可以很好地获取每个表的所有数据。
我在这里缺少什么?谢谢。
大话西游666