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」に対して自己参照ループが検出されました。
これは、質問に回答があり、回答に質問への参照があるためですか?私が見たすべての場所は、子供の親への言及があることを示唆しているので、私は何をすべきかわかりません。誰かが私にこれについていくつかのアドバイスを与えることができますか?