Почему я получаю не все данные из базы по ссылке https://локальный:XXXXX/апи/комментарии (ПОЛУЧИТЬ запрос) После обновления данные страницы больше не отображаются..
Ответ: [{"id":1,"текст":"Comment1","userId":1,"parentCommentId":null,"user":null,"parentComment":null,"childrenComments":null},{"id ":2,"текст":"Комментарий2","userId":1,"parentCommentId":1,"пользователь":null,"parentComment":{"id":1,"текст":"Комментарий1"," userId": 1, "parentCommentId": null, "user": null, "parentComment": null, "childrenComments": [
Не загружает подчиненный элемент.. Что я делаю неправильно?
// GET: api/Comments
[HttpGet]
public IEnumerable<Comment> GetComments()
{
return _context.Comments;
}
Вы также должны загрузить отношения. Два основных способа сделать это — активная загрузка через Include
или отложенная загрузка. Однако в целом следует избегать ленивой загрузки, особенно в подобных случаях. Когда вы сериализуете объект, вы можете непреднамеренно выдать сотни или даже тысячи запросов с отложенной загрузкой.
Длинные и короткие, добавьте пункты Include
для отношений, которые вас интересуют:
return _context.Comments
.Include(x => x.User)
.Include(x => x.parentComment)
.Include(x => x.childrenComments);
Если вам нужна большая гибкость, вы можете использовать OData или GraphQL. Любой из них позволит клиенту выборочно включать отношения, которые он хочет/нуждается, а это означает, что вам не обязательно каждый раз присоединяться ко всему.