В моем проекте Asp.Net Core Web API 2.2 есть контроллер Web API.
Messageboard
модель:
public class MessageBoard
{
public long Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Message> Messages { get; set; }
}
Message
модель:
public class Message
{
public long Id { get; set; }
public string Text { get; set; }
public string User { get; set; }
public DateTime PostedDate { get; set; }
public long MessageBoardId { get; set; }
[ForeignKey("MessageBoardId")]
public MessageBoard MessageBoard { get; set; }
}
Это одно из моих действий контроллера Web API, сокращенное для краткости:
[Route("api/[controller]")]
[ApiController]
public class MessageBoardsController : ControllerBase
{
// GET: api/MessageBoards
[HttpGet]
public async Task<ActionResult<IEnumerable<MessageBoard>>> GetMessageBoards()
{
return await _context.MessageBoards
.Include(i => i.Messages)
.ToListAsync();
}
}
Всякий раз, когда я отправляю GET-запрос к MessageBoards, возвращается только часть правильного JSON.Вот возвращенный JSON от доступа к https://localhost:44384/api/MessageBoards/
на Почтальоне:
[{"id": 1, "name": "Test Board 2", "description": "Вторая доска сообщений дляцели тестирования. "," messages ": [{" id ": 1," text ":" Отправка моего первого сообщения! "," user ":" Jesse "," postsDate ":" 2019-01-01T00: 00:00 "," messageBoardId ": 1
JSON обрезан (следовательно, это уродливый блок и не украшен почтальоном), предположительно из-за свойства MessageBoard
в Message
модель, поскольку это первый отсутствующий элемент JSON.
Как сделать так, чтобы действие правильно возвращало список досок сообщений и дочерних сообщений?