【问题标题】:JSON.Net Self referencing loop detected in API Controller在 API 控制器中检测到 JSON.Net 自引用循环
【发布时间】:2016-09-15 04:39:29
【问题描述】:

环境:

  • .net 4.6 1.0.0-rc1-update2
  • Entity Framework 核心 rc final。

我的 API 控制器抛出了这个异常:

应用程序引发了未处理的异常。 Newtonsoft.Json.JsonSerializationException:为“Blog.Model.Site”类型的属性“Site”检测到自引用循环。路径“[0].Menus[0]”。

如何实施此处建议的修复: JSON.Net Self referencing loop detected

据我所知,EF core 没有实现延迟加载或代理创建。

我的控制器只返回这个查询生成的集合:

public async Task<List<Site>> GetActiveSites()
{
    var query = db.Sites.Where(x => x.Active)
        .Include(x => x.Menus)
        .ThenInclude(m => m.MenuContentItems)
        .ThenInclude(x => x.ContentItem);

    return await query.ToListAsync();
}

地点:

  • 站点(1) - 菜单(*)
  • 菜单(1) - MenuontentItem(*)
  • MenuContentItem(*) - ContentItem(1)

【问题讨论】:

标签: entity-framework asp.net-web-api json.net


【解决方案1】:

创建一个没有 EF 具有的双向映射的视图模型。从您的 ef 查询中填充该视图模型。

【讨论】:

    猜你喜欢
    • 2012-11-10
    • 2017-03-21
    • 2017-02-13
    • 1970-01-01
    • 2016-02-15
    • 2014-02-05
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多