Aufbau eines Methodenaufrufs

Ich versuche, dieser Anleitung zu folgen:https: //github.com/Readify/Neo4jClient/wiki/cypher-examples#get-all-users-by-labe Ich muss einen Lambda-Ausdruck erstellen, um ihn dem @ zur Verfügung zu stelleReturn Methode. In C # sieht es so aus:

.Return(n => n.As<Project>())

und in Powershell habe ich es so gemacht (laut @ PetSerAl's Vorschlag:Überlastung bei Rückkehr schlägt fehl):

$exp = [System.Linq.Expressions.Expression]
$param = $exp::Parameter([Neo4jClient.Cyper.ICypherResultItem], "n")
$body = $exp::TypeAs($p, (new-object Project).GetType())
$lambda = $exp::Lambda([Func[Project]], $body, $p)

solche, dass der an den Lambda-Ausdruck übergebene Parameter eingegeben wird, um zu erhalten, was der Neo4j-Ausdruck übergibt, und der Rumpf der Methode konvertiert ihn in einProject (eine lokal definierte Klasse). Jetzt kann ich es meiner Methode übergeben:

$something.Return($lambda)

jedoch bekomme ich diesen Fehler

Exception, die "Return" mit "1" -Argumenten aufruft: "Der Ausdruck muss entweder als Objektinitialisierer (zum Beispiel: n => new MyResultType {Foo = n.Bar}), als anonymer Typinitialisierer (z Beispiel: n => new {Foo = n.Bar}), ein Methodenaufruf (Beispiel: n => n.Count ()) oder ein Member-Accessor (Beispiel: n => n.As (). Bar Sie können keine Codeblöcke angeben (zum Beispiel: n => {var a = n + 1; Rückgabe a;}) oder Konstruktoren mit Argumenten verwenden (zum Beispiel: n => new Foo (n)). In F # werden auch Tupel unterstützt. Parametername: Ausdruck "In Zeile: 1 Zeichen: 1 + $ neo.Cypher.Match (" n "). Return ($ return) + ~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: ArgumentException

was klar macht, dass ich den Körper des Lambda-Ausdrucks nicht richtig formuliert habe. kann jemand vorschlagen, wie es stattdessen sein soll?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage