Я выбираю объекты с вложенными объектами в свойствах навигации.Проблема в том, что у меня есть Book
со свойством навигации Borrows
, и у каждого Borrow
есть свойство навигации Book
со ссылкой на книгу, поэтому есть круговая ссылка.Я думаю, что мне следует сделать, это найти способ включить список заимствований книги и в каждом заимствовании не включить обратную ссылку через навигацию внутри этого Borrow.Book
?Я новичок в Entity Framework и не знаю, как это сделать, я слышал о типах загрузки для свойств навигации, но я не уверен, подходит ли она для этой ситуации.
Аналогично, всякий раз, когда я получаюсписок заимствованных книг Я хотел бы, чтобы Заем включал Книгу, но не список заимствований в Книге Заимствования, которые приводят к циклическим ссылкам.
Контроллер веб-API /books
:
public List<Book> GetBooks()
{
var books = db.Books.ToList();
return books;
}
Ошибка:
{
"message": "An error has occurred.",
"exceptionMessage": "The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.",
"exceptionType": "System.InvalidOperationException",
"stackTrace": null,
"innerException": {
"message": "An error has occurred.",
"exceptionMessage": "Self referencing loop detected for property 'book' with type 'System.Data.Entity.DynamicProxies.Book_6E27A1F717202EA02AE923CCC6405EF9A501FE9A54A71841CEB43E942224D88A'. Path '[0].borrows[0]'.",
"exceptionType": "Newtonsoft.Json.JsonSerializationException",
"stackTrace": " at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CheckForCircularReference(JsonWriter writer, Object value, JsonProperty property, JsonContract contract, JsonContainerContract containerContract, JsonProperty containerProperty)
...