我正在使用 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”的响应正文;字符集=utf-8'。
检测到类型为“Models.Core.Question”的属性“问题”的自引用循环。
这是因为问题有答案,而答案有对问题的引用吗?我看过的所有地方都建议在孩子身上提到父母,所以我不知道该怎么做。有人可以给我一些建议吗?