У меня следующая структура БД:
User --> Membership <-- Org <-- Basic (basic info)
^----- Contacts (org contacts)
^----- Invoice
^----- Contacts (invoice contacts)
Следующий запрос возвращает Invoice.Contacts = null
.
var userOrgs = await _context.Memberships
.Include(p => p.User)
.Include(p => p.Org)
.ThenInclude(p => p.Basic)
.Include(p => p.Org)
.ThenInclude(p => p.Contacts)
.Include(p => p.Org)
.ThenInclude(p => p.Invoice)
.ThenInclude(p => p.Contacts)
.Where(p => p.User.Id == request.UserId)
.Select(p => new GetUserOrgsResponse
{
OrgId = p.Org.Id,
Basic = p.Org.Basic,
Contacts = p.Org.Contacts,
Invoice = p.Org.Invoice, // <<-- result will have Invoice.Contacts = null
InsertDate = p.InsertDate,
Roles = p.Roles.Select(s => s.ToString().ToLower()).ToArray()
})
.ToListAsync(cancellationToken);
Все отлично, если не используете
.Select(p => new GetUserOrgsResponse { ... })
но просто уходит .ToListAsync(cancellationToken)
Как мне исправить этот запрос, чтобы он возвращал список GetUserOrgsResponse, который также включает Invoice.Contacts
(сущность 3-го уровня)?