У меня возникли некоторые проблемы с моим приложением ASP.NET Web API с возвращенными данными.
У меня есть 2 модели, отношения между провинциями как один-ко-многим.Я использую Eager Loading после учебник с веб-сайта 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.
Мой предыдущий 2API получают все данные каждой таблицы нормально.
Что мне здесь не хватает?Спасибо.