我正在使用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'。
为类型为“ Models.Core.Question”的属性“ question”检测到自引用循环。
这是因为问题有答案,而答案有对问题的引用吗?我看过的所有地方都建议在孩子中提及父母,因此我不确定该怎么做。有人可以给我一些建议吗?