Я використовую 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;
}
На стороні C # це, здається, працює, однак я помічаю, що об'єкти відповіді мають посилання на запитання. Коли я використовую WebAPI для отримання даних до браузера, я отримую таке повідомлення:
Тип 'ObjectContent`1' не зміг серіалізувати тіло відповіді для типу вмісту 'application / json; charset = utf-8 '.
Виявлено цикл самостійного посилання для властивості 'question' із типом 'Models.Core.Question'.
Це тому, що Питання має відповіді, а відповіді мають посилання на Питання? Всі місця, які я переглядав, пропонують мати посилання на батьків у дитини, тому я не знаю, що робити. Хтось може дати мені якусь пораду з цього приводу.