Kombinieren von Ausdrucksbäumen

Ich habe den folgenden Ausdruck:

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

Dann möchte ich diesen Filter auf mehrere Sammlungen (IQueryable) wie diese anwenden:

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

Ich erhalte dabei folgende Fehlermeldung:

Error 40 Typ kann nicht implizit konvertiert werdenSystem.Linq.Expressions.Expression<System.Func<TaskUser,bool>> zubool

Ich kann die Problemumgehung nicht mit der Schnittstellenvererbung verwenden (wie TaskUser die Schnittstelle mit der Eigenschaft int UserId (wobei T: IHasUserId) erbt), da ich die Logik kombinieren möchte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage