0

I have the following method to get a person detail by id. I want to add where condition to the include ie. Where(subordinates => subordinates.Active) . Can anyone help me how to do this?

public async Task<PersonDetails> GetPerson(int id)
    {
        var hasSensitiveAccess = _permissionsService.GetSensitiveAccess();

        return await _context.User
            .Include(user => user.Manager)
            .Include(user => user.InverseManager) //want to include only active subordinates
            .AsNoTracking()
            .Where(user => user.Id == id)
            .Select(UserDetailsMappingSelector.ToViewModel(hasSensitiveAccess))
            .FirstOrDefaultAsync();
    }

Thanks

Mukil Deepthi
  • 6,072
  • 13
  • 71
  • 156
  • 1
    Does this answer your question? [How to filter "Include" entities in entity framework?](https://stackoverflow.com/questions/39636952/how-to-filter-include-entities-in-entity-framework) – Flo Aug 13 '21 at 12:07

1 Answers1

0
return await _context.User
            .Include(user => user.Manager)
            .Include(user => user.InverseManager.Where(s => s.Active))
            .ThenInclude(s => s.Manager)
            .AsNoTracking()
            .Where(user => user.Id == id)
        
Alex
  • 710
  • 6
  • 8