Я использую Entity Framework и имею проблему с получением родительских и дочерних данных в браузере. Вот мои классы:
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; }
}
Я использую следующий код для возврата данных вопросов и ответов:
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;
}
На стороне С# это, похоже, работает, однако я замечаю, что объекты ответа ссылаются на вопрос. Когда я использую WebAPI для получения данных в браузере, я получаю следующее сообщение:
Тип ObjectContent`1 не смог сериализовать тело ответа для типа контента 'application/json; кодировка = UTF-8'.
Ядро референтных ссылок обнаружено для свойства "вопрос" с типом "Models.Core.Question".
Это потому, что у Вопроса есть ответы и ответы есть ссылка на Вопрос? Все места, которые я искал, предлагают иметь ссылку на родителя в ребенке, поэтому я не уверен, что делать. Может кто-нибудь дать мне несколько советов по этому поводу.