Übergabe von func als Parameter in Linq an Entities und Fehler 'Interner .NET Framework-Datenprovider, Fehler 1025'

Wir haben eine Klasse namens Aufgabe:

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

Es hat eine Navigationseigenschaft namens TaskUsers, die Benutzer enthält, die an diese Takes angehängt sind:

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

Jedes TaskUser-Objekt verfügt über ein Benutzerobjekt.

Wir sind gegebenIQueryable<Task> tasks. Wir möchten Aufgaben finden, die dem Benutzer mit der ID = 1 zugewiesen wurden

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

alles funktioniert gut Wenn wir verwenden

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

wir werden nett'Internal .NET Framework Data Provider error 1025' Error. Warum? Ich möchte mit viel komplizierteren Filtern bauenExpression klasse, aber wenn ich nicht einfach durchkommen kannFunc, das geht nicht. Was soll ich machen?

BEARBEITEN

Könnte sein

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

funktioniert nicht, aber

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

funktioniert! Das ist alles was ich brauche.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage