环境:
- .net 4.6 1.0.0-rc1-update2
- 实体框架核心rc最终版本
我的API控制器正在抛出此异常:
应用程序引发了未经处理的异常。Newtonsoft.Json.JsonSerializationException:为类型为"Blog.Model.Site"的属性"Site"检测到自引用循环。路径为"[0].Menus[0]"。
如何实现此处建议的修复程序:JSON.Net自引用循环检测到
据我所知,EF核心并没有实现延迟加载或代理创建。
我的控制器简单地返回这个查询生成的集合:
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)-菜单项(*)
- MenuContentItem(*)-ContentItem(1)
创建一个没有EF双向映射的视图模型。从您的ef查询填充该视图模型。