Expression.Call - Aufrufen der Linq-Erweiterung: FirstOrDefault, Where

Ich versuche Folgendes dynamisch zu erstellen, habe jedoch Probleme beim Aufrufen der ErweiterungsmethodeFirstOrDefault:

 using(var context = new Entities())
 {
     var list = context.Engines.Include("Cars").Select(e => e.Cars.FirstOrDefault()).ToList();
 }

Ich habe die folgenden

Expression parameter = Expression.Parameter(typeof(Engine), "e");
Expression property = Expression.Property(parameter, "Cars");
parameter ={e}property ={e.Cars}

Diese sind gut, aber ich stoße auf ein Problem, wenn ich versuche, das @ aufzurufeFirstOrDefault Methode

var result = Expression.Call(typeof(Queryable), "FirstOrDefault", new type[] { typeof(Car)}, property);

Ich hätte ger

result ={e.Cars.FirstOrDefault()}

aber ich bekomme einInvalidOperationException

Keine generische Methode 'FirstOrDefault' für den Typ 'System.Linq.Queryable' ist mit den angegebenen Typargumenten und Argumenten kompatibel. Wenn die Methode nicht generisch ist, sollten keine Typargumente angegeben werden.

Jede Hilfe wäre sehr dankbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage