我正在使用EF Core 2.0开发ASP.NET Core Web API。
我有以下代码:
return _context.Pessoas
.Include(x => x.ListasXPessoas).ThenInclude(l => l.Lista)
.Take(100);
Pessoas和Listas有多对多的关系,ListasXPessoas是连接表。
我不想返回Listas实体的相关数据,因为它会循环回到Pessoas。它正在击败Take(100)
的目的。有没有办法关闭这种行为,或者只是以唯一的方式执行SQL命令?
答案 0 :(得分:0)
问题不在于包含,我不认为递归引用会影响性能,除非你循环它们。问题在于,当你序列化为json时,你将无限循环。
告诉json格式化程序忽略递归引用:
services.AddMvcCore()
.AddJsonFormatters(opt => opt.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);