Heim > Backend-Entwicklung > C++ > Warum gibt Entity Framework die Fehlermeldung „Ein Lambda-Ausdruck mit einem Anweisungstext kann nicht in einen Ausdrucksbaum konvertiert werden' aus?

Warum gibt Entity Framework die Fehlermeldung „Ein Lambda-Ausdruck mit einem Anweisungstext kann nicht in einen Ausdrucksbaum konvertiert werden' aus?

Linda Hamilton
Freigeben: 2024-12-31 08:45:13
Original
844 Leute haben es durchsucht

Why Does Entity Framework Throw

Fehler: „Ein Lambda-Ausdruck mit einem Anweisungskörper kann nicht in einen Ausdrucksbaum konvertiert werden“ bei Verwendung von EntityFramework

Bei Verwendung der Select-Methode von EntityFramework , kann es zu folgender Fehlermeldung kommen: „Ein Lambda-Ausdruck mit einem Anweisungstext kann nicht in einen Ausdrucksbaum konvertiert werden.“ Dieser Fehler tritt häufig auf, wenn der von Ihnen bereitgestellte Lambda-Ausdruck einen Anweisungstext anstelle eines einfachen Ausdrucks enthält.

Den Fehler verstehen:

Im bereitgestellten Codeausschnitt:

Obj[] myArray = objects.Select(o =>
{
    var someLocalVar = o.someVar;

    return new Obj() {
    Var1 = someLocalVar,
    Var2 = o.var2 };
});
Nach dem Login kopieren

Der Lambda-Ausdruck verwendet einen Anweisungskörper, um eine lokale Variable someLocalVar zu deklarieren und zu verwenden, bevor eine Instanz von Obj zurückgegeben wird. EntityFramework erwartet jedoch einfache Ausdrücke, die für eine effiziente Datenbankausführung direkt in SQL übersetzt werden können.

Lösung:

Um diesen Fehler zu beheben, vereinfachen Sie den Lambda-Ausdruck, indem Sie das entfernen Anweisungskörper und direkte Zuweisung der Werte:

Arr[] myArray = objects.Select(o => new Obj() {
    Var1 = o.someVar,
    Var2 = o.var2 
});
Nach dem Login kopieren

Mit dieser Modifikation enthält der Lambda-Ausdruck nur einen einfachen Ausdruck, der in einen Ausdruck übersetzt werden kann Baum, und der Code wird erfolgreich kompiliert.

Das obige ist der detaillierte Inhalt vonWarum gibt Entity Framework die Fehlermeldung „Ein Lambda-Ausdruck mit einem Anweisungstext kann nicht in einen Ausdrucksbaum konvertiert werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage