Tôi đang sử dụng Entity Framework và gặp sự cố khi tải dữ liệu cha và con vào trình duyệt. Đây là các lớp học của tôi:
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; }
}
Tôi đang sử dụng mã sau để trả về dữ liệu câu hỏi và câu trả lời:
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;
}
Về phía C #, điều này có vẻ hoạt động tuy nhiên tôi nhận thấy rằng các đối tượng trả lời có tham chiếu trở lại câu hỏi. Khi tôi sử dụng WebAPI để tải dữ liệu vào trình duyệt, tôi nhận được thông báo sau:
Loại 'ObjectContent`1' không thể tuần tự hóa phần thân phản hồi cho loại nội dung 'application / json; charset = utf-8 '.
Đã phát hiện vòng lặp tự tham chiếu cho thuộc tính 'câu hỏi' với loại 'Models.Core.Question'.
Điều này có phải vì Câu hỏi có Câu trả lời và các Câu trả lời có tham chiếu trở lại Câu hỏi không? Tất cả những nơi tôi đã xem đều gợi ý rằng có tham chiếu đến cha mẹ của đứa trẻ nên tôi không chắc phải làm gì. Ai đó có thể cho tôi một số lời khuyên về điều này.