Объединение деревьев выражений

У меня есть следующее выражение:

public Expression<Func<T, bool>> UserAccessCheckExpression<T>(int userId) where T : class
{
    return x => (IsAdmin || userId == CurrentUserId || userId == 0);
}

Затем я хочу применить этот фильтр к нескольким коллекциям (IQueryable), таким как эта:

return tasks
  .Where(t => t.TaskUsers
     .Any(x => UserAccessCheckExpression<TaskUser>(x.User) && x.SomeBool == true));

При этом я получаю следующую ошибку:

Ошибка 40 Не удается неявно преобразовать типSystem.Linq.Expressions.Expression<System.Func<TaskUser,bool>> вbool

Я не могу использовать обходной путь с наследованием интерфейса (как TaskUser наследует интерфейс со свойством int UserId (где T: IHasUserId)), так как я хочу объединить логику.

Ответы на вопрос(2)

Ваш ответ на вопрос