Я занимаюсь разработкой API с использованием .NET MVC и возвращаю результаты в формате JSON.Сначала казалось, что все в порядке с моими результатами, возвращенными из базы данных как IEnumerable, которые затем преобразуются в возвращаемый тип JSONResult.
Это сериализует иерархию для меня, и дочерние объекты загружаются автоматически на основе отношений вдизайнер и стать частью JSON иерархии.
IEnumerable<Book> books= _contentRepository.GetBooks();
return Json(new {
success = true,
data = new {
books = books
}
}, JsonRequestBehavior.AllowGet);
Эта проблема также является проблемой, поскольку иногда загружается целая нагрузка дочерних объектов, которая мне не нужна.Например, скажем, у меня есть книжная сущность, у которой есть связанные книги, и у этих связанных книг также есть связанные книги, дерево очень быстро углубляется.
Рик Страл говорит об этом ближе к концу своей статьи:http://www.west -wind.com / weblog / posts / 147218.aspx
Я все еще хочу сохранить иерархию, так что json также является иерархическим.например, book.author, book.publisher [0] .name, но мне нужен некоторый контроль над тем, что загружено в запросе.
Я смотрю на удаление всех ссылок между сущностями в конструкторе и указание соединений взапрос или запросы и, возможно, вручную составляют результирующую иерархию?