这是因为问题有答案,而答案有对问题的引用吗?
是。无法序列化。
编辑:请参阅Tallmaris的答案和OttO的评论,因为它更简单并且可以全局设置。
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
旧答案:
将EF对象
Question投影到您自己的中间对象或DataTransferObject。然后可以成功序列化此Dto。
public class QuestionDto{ public QuestionDto() { this.Answers = new List<Answer>(); } public int QuestionId { get; set; } ... ... public string Title { get; set; } public List<Answer> Answers { get; set; }}
就像是:
public IList<QuestionDto> GetQuestions(int subTopicId, int questionStatusId){ var questions = _questionsRepository.GetAll() .Where(a => a.SubTopicId == subTopicId && (questionStatusId == 99 || a.QuestionStatusId == questionStatusId)) .Include(a => a.Answers) .ToList(); var dto = questions.Select(x => new QuestionDto { Title = x.Title ... } ); return dto; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)