Неполные данные JSON по запросу GET в ASP.NET Core

Почему я получаю не все данные из базы по ссылке 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;
}
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
192
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы также должны загрузить отношения. Два основных способа сделать это — активная загрузка через Include или отложенная загрузка. Однако в целом следует избегать ленивой загрузки, особенно в подобных случаях. Когда вы сериализуете объект, вы можете непреднамеренно выдать сотни или даже тысячи запросов с отложенной загрузкой.

Длинные и короткие, добавьте пункты Include для отношений, которые вас интересуют:

return _context.Comments
    .Include(x => x.User)
    .Include(x => x.parentComment)
    .Include(x => x.childrenComments);

Если вам нужна большая гибкость, вы можете использовать OData или GraphQL. Любой из них позволит клиенту выборочно включать отношения, которые он хочет/нуждается, а это означает, что вам не обязательно каждый раз присоединяться ко всему.

Другие вопросы по теме