How about specifying the condition in the Where
clause?
documents = context.ClientDocuments
.Where(d => d.ClientID == clientId && roles.Contains(d.AccessRole))
.OrderByDescending(d => d.DateCreated)
.Select(
doc => new ClientDocumentDto()
{
DocumentID = doc.ClientDocumentID,
Name = doc.Name,
Project = doc.Project,
DocumentType = doc.DocumentType,
DateCreated = doc.DateCreated,
AccessRole = doc.AccessRole
});