我有一个.Net Core 3.0 Web API项目,并且正在使用Entity Framework作为我的ORM。我有一个如下所示的自引用实体:
public partial class Category
{
public Category()
{
Events = new HashSet<Event>();
InverseParentCategory = new HashSet<Category>();
}
public int Id { get; set; }
public string Name { get; set; }
public int? ParentCategoryId { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Event> Events { get; set; }
public virtual ICollection<Category> InverseParentCategory { get; set; }
}
这是我的CategoriesController
中的操作方法,该方法将所有类别作为JSON对象返回:
[HttpGet]
public async Task<IActionResult> GetAllCategories()
{
var allCategories = await _categoryService.GetCategories();
return Ok(allCategories);
}
这是我的GetCategories
中的CategoryService
方法:
public async Task<IEnumerable<Category>> GetCategories()
{
var allCategories = await _context.Categories.ToListAsync();
return allCategories;
}
我通过邮递员得到的答复是:
[
{
"id": 1,
"name": "Soccer",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": [
{
"id": 3,
"name": "Basketbal",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 4,
"name": "Volleyball",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 5,
"name": "",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 6,
"name": "dada",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
}
]
},
{
"id": 2,
"name": "Basketbal",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": []
},
{
"id": 3,
"name": "Basketbal",
"parentCategoryId": 1,
"parentCategory": {
"id": 1,
"name": "Soccer",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": [
{
"id": 4,
"name": "Volleyball",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 5,
"name": "",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 6,
"name": "dada",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
}
]
},
"events": [],
"inverseParentCategory": []
},
{
"id": 4,
"name": "Volleyball",
"parentCategoryId": 1,
"parentCategory": {
"id": 1,
"name": "Soccer",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": [
{
"id": 3,
"name": "Basketbal",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 5,
"name": "",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 6,
"name": "dada",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
}
]
},
"events": [],
"inverseParentCategory": []
},
{
"id": 5,
"name": "",
"parentCategoryId": 1,
"parentCategory": {
"id": 1,
"name": "Soccer",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": [
{
"id": 3,
"name": "Basketbal",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 4,
"name": "Volleyball",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 6,
"name": "dada",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
}
]
},
"events": [],
"inverseParentCategory": []
},
{
"id": 6,
"name": "dada",
"parentCategoryId": 1,
"parentCategory": {
"id": 1,
"name": "Soccer",
"parentCategoryId": null,
"parentCategory": null,
"events": [],
"inverseParentCategory": [
{
"id": 3,
"name": "Basketbal",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 4,
"name": "Volleyball",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
},
{
"id": 5,
"name": "",
"parentCategoryId": 1,
"events": [],
"inverseParentCategory": []
}
]
},
"events": [],
"inverseParentCategory": []
}
]
因此您可以看到,当孩子有父母时,它将返回父母的数据及其孩子。我想避免这种情况,但我实际上什么也没想到。我可以得到任何帮助吗?