您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

检测到自引用循环-将数据从WebApi取回浏览器

检测到自引用循环-将数据从WebApi取回浏览器

这是因为问题有答案,而答案有对问题的引用吗?

是。无法序列化。

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Re??ferenceLoopHandling = 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; 
}
其他 2022/1/1 18:16:19 有600人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶