Pasando func como parámetro en Linq a entidades y error '1025' del proveedor de datos de .NET Framework interno

Tenemos una clase llamada Tarea:

public partial class Task : EntityObject
{
    public EntityCollection<TaskUser> TaskUsers { get {...} set{...} } 
}

Tiene una propiedad de navegación llamada TaskUsers, que contiene usuarios adjuntos a este taks:

public partial class TaskUser : EntityObject
{
    public User User { get {...} set {  } }
}

Cada objeto TaskUser tiene un objeto User.

Se nos daIQueryable<Task> tasks. Queremos encontrar tareas asignadas al usuario con ID = 1. Cuando usamos

tasks.Where(t => t.TaskUsers.Any(a => a.User.ID == 1))

todo funciona bien Cuando usamos

Func<TaskUser, bool> function = a => a.User.ID == 1;
return tasks.Where(t => t.TaskUsers.Any(function));

nos ponemos bien'Internal .NET Framework Data Provider error 1025' error. ¿Por qué? Quiero construir filtros mucho más complicados usandoExpression Clase, pero si no puedo pasar lo sencillo.Func, esto no se puede hacer. ¿Qué tengo que hacer?

EDITAR

Tal vez

Func<TaskUser, bool> function = a => a.User.ID == 1;
return tasks.Where(t => t.TaskUsers.Any(function));

no funciona, pero

Expression<Func<TaskUser, bool>> expression = a => a.User.ID == 1;
return tasks.Where(t => t.TaskUsers.AsQueryable().Any(expression));

¡trabajos! Eso es todo lo que necesitaba.

Respuestas a la pregunta(1)

Su respuesta a la pregunta