Kann OrderBy on Queryable nicht mit den angegebenen Argumenten finden.

8

Ich habe eine Methode, mit der ich eine Liste sortieren kann:

%Vor%

Ich bekomme eine Ausnahme, wenn ich den Code mit den folgenden Argumenten ausführe:

%Vor%

Die Ausnahme ist:

%Vor%

Kann jemand sehen, was ich hier vermisse?

BEARBEITEN:

Ich habe eine weitere Überladung von Expression.Call () versucht und dieselbe Ausnahme erhalten:

%Vor%     
Byron Sommardahl 31.07.2011, 21:59
quelle

1 Antwort

11

Da der Eigenschaftsauswahlausdruck die entsprechenden Aufrufe dynamisch ausführen soll, müssen Sie einen neuen Ausdruck dafür erstellen. Sie können den bereitgestellten Selektor nicht verwenden, da er aktuell Expression<Func<T, object>> eingegeben wurde und nicht den spezifischen Typ Expression<Func<T, SomeType>> zurückgibt. Sie können es möglicherweise kompilieren, indem Sie die Typargumente des Aufrufs ändern, um object zu akzeptieren, aber es wird nicht wie erwartet funktionieren, da es Objektreferenzvergleiche durchführt (und Ihr LINQ-Provider wird es möglicherweise trotzdem ablehnen) / p>

Um den Selektorausdruck neu zu erstellen, können Sie Folgendes tun:

%Vor%

Eine gute Alternative dazu wäre, den Eigenschaftstyp auch generisch zu machen. Auf diese Weise erhalten Sie von Anfang an einen entsprechend stark typisierten Selektor.

%Vor%     
Jeff Mercado 31.07.2011, 22:47
quelle

Tags und Links