Обнаружен цикл обращения к себе - возврат данных из WebApi в браузер
Я использую Entity Framework и имею проблему с передачей родительских и дочерних данных в браузер. Вот мои занятия:
public class Question
{
public int QuestionId { get; set; }
public string Title { get; set; }
public virtual ICollection Answers { get; set; }
}
public class Answer
{
public int AnswerId { get; set; }
public string Text { get; set; }
public int QuestionId { get; set; }
public virtual Question Question { get; set; }
}
Я использую следующий код для возврата данных вопроса и ответа:
public IList GetQuestions(int subTopicId, int questionStatusId)
{
var questions = _questionsRepository.GetAll()
.Where(a => a.SubTopicId == subTopicId &&
(questionStatusId == 99 ||
a.QuestionStatusId == questionStatusId))
.Include(a => a.Answers)
.ToList();
return questions;
}
На стороне C # это, кажется, работает, однако я заметил, что у объектов ответа есть ссылки на вопрос. Когда я использую WebAPI для передачи данных в браузер, я получаю следующее сообщение:
'ObjectContent`1' type не удалось сериализовать тело ответа для типа контента 'Применение / JSON; кодировка = UTF-8' .
Обнаружен самореферентный цикл для свойствавопрос' с типом 'Models.Core.Question.
Это потому, что в вопросе есть ответы, а в ответах есть ссылка на вопрос? Все места, которые я посмотрел, предполагают наличие ссылки на родителя в ребенке, поэтому я не уверен, что делать. Может кто-нибудь дать мне совет по этому поводу.