如何忽略ThenInclude的相关数据?

时间:2018-02-12 17:16:12

标签: c# entity-framework-core

我正在使用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命令?

1 个答案:

答案 0 :(得分:0)

问题不在于包含,我不认为递归引用会影响性能,除非你循环它们。问题在于,当你序列化为json时,你将无限循环。

告诉json格式化程序忽略递归引用:

services.AddMvcCore()
        .AddJsonFormatters(opt => opt.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);