最佳答案
我正在使用实体框架,并与获得父母和子女的数据浏览器有一个问题。这是我的课程:
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.questions”的属性“ questions”的自引用循环。
这是因为问题有答案,而答案有一个参考回到问题?所有我看过的地方都建议在孩子的父母那里有一个参考,所以我不知道该怎么做。有人能给我点建议吗。