Loop de auto-referência detectado - Recuperando dados do WebApi para o navegador
Eu estou usando o Entity Framework e tendo um problema com a obtenção de dados pai e filho para o navegador. Aqui estão minhas aulas:
public class Question
{
public int QuestionId { get; set; }
public string Title { get; set; }
public virtual ICollection<Answer> 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; }
}
Eu estou usando o seguinte código para retornar os dados de pergunta e resposta:
public IList<Question> 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;
}
No lado C # isso parece funcionar, no entanto, percebo que os objetos de resposta têm referências de volta para a questão. Quando eu uso o WebAPI para obter os dados para o navegador, recebo a seguinte mensagem:
O tipo 'ObjectContent`1' falhou ao serializar o corpo da resposta para o tipo de conteúdo 'application / json; charset = utf-8 '.
Loop de auto-referência detectado para a propriedade 'question' com o tipo 'Models.Core.Question'.
Isto é porque a pergunta tem respostas e as respostas tem uma referência de volta para a pergunta? Todos os lugares que procurei sugerem ter uma referência aos pais da criança, por isso não sei o que fazer. Alguém pode me dar algum conselho sobre isso.