EF Core .Include () извлекает несколько дочерних объектов - PullRequest
0 голосов
/ 13 марта 2020

У меня есть модель Foo, которая включает Bar, а Bar включает Baz (простите за слабый и типичный пример наименования)

public class Foo
{
  public Guid Id { get; set; }
  public Guid BarId { get; set; }
  public Bar BarStuff { get; set; }
}

public class Bar
{
  public Guid Id { get; set; }
  public Guid BazId { get; set; }
  public Baz BazStuff { get; set; }
}

public class Baz
{
  public Guid Id { get; set; }
  public string BazName { get; set; }
}

Когда я хочу получить свои Foo предметы и их дочерние элементы Baz, но не их Baz элементы, которые я обычно просто делаю:

await _context.Foo.Include(f => f.Bar).ToListAsync()

Однако у меня возникает проблема, даже если Я только .Includ() ING Bar он все еще тянет в Baz элемент.

ie:

[{ 
 id: 'guid',
 barId: 'guid',
 barStuff: {
    id: 'guid',
    bazId: 'guid',
    bazStuff: {
       id: 'guid',
       bazString: 'I shouldnt get this in my response'
    }
  }
}]

Я думал, что это будет работать, только если я сделал await _context.Foo.Include(f => f.BarStuff).ThenInclude(b => b.BazStuff).ToListAsync()

Почему?

...