Heim >Backend-Entwicklung >C++ >Wie kann die Unfähigkeit von Entity Framework, Double.Parse() zu übersetzen, behoben werden?
Entity Framework-Konvertierungsproblem: Double.Parse kann nicht übersetzt werden
Bei der Arbeit mit LINQ to Entities ist es wichtig zu beachten, dass nicht alle Methoden Die in LINQ to Objects unterstützten Funktionen können direkt in SQL-Abfragen übersetzt werden. Ein häufiger Fehler ist die Unfähigkeit, Double.Parse() in LINQ to Entities-Anweisungen zu verwenden.
Beheben des Problems für Double.Parse()
Um dieses Problem zu beheben können Sie eine benutzerdefinierte Methode definieren, die das Parsen durchführt, und diese mithilfe einer in *.edmx definierten Funktion in gültiges SQL übersetzen Datei.
Beispiel:
Definieren Sie die SQL-Übersetzung:
Im Abschnitt „ConceptualModels“ Ihrer *. edmx-Datei hinzufügen, fügen Sie die folgende Funktion hinzu Definition:
<Function Name="ParseDouble" ReturnType="Edm.Double"> <Parameter Name="stringvalue" Type="Edm.String"></Parameter> <DefiningExpression> cast(stringvalue as Edm.Double) </DefiningExpression> </Function>
Erstellen Sie die benutzerdefinierte Methode im Code:
Fügen Sie in Ihrer ObjectContext-Teilklasse (normalerweise vom EDMX generiert) hinzu die folgende Methode:
public static double ParseDouble(string stringvalue) { return Double.Parse(stringvalue); }
Diese Methode dient als Stub bei LINQ-Abfragen und wird in die SQL CAST-Anweisung übersetzt im EDMX definiert.
Beispiel (Anwenden der benutzerdefinierten Methode):
Ersetzen Sie in Ihrer LINQ-Anweisung alle Instanzen von Double.Parse( ) mit YourObjectContext.ParseDouble(), um die benutzerdefinierte Methode zu verwenden und die Übersetzung zu ermöglichen SQL.
Zusätzliche Überlegungen:
Beachten Sie, dass Math.Round() möglicherweise auch einen ähnlichen Ansatz erfordert, wenn er im spezifischen Kontext nicht von Entity Framework unterstützt wird. Verwenden Sie die Liste der kanonischen EDM-Funktionen, um die geeignete zu definierende SQL-Funktion zu bestimmen.
Das obige ist der detaillierte Inhalt vonWie kann die Unfähigkeit von Entity Framework, Double.Parse() zu übersetzen, behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!