Ich versuche, eine mathematische Funktion zu SQL Server senden mit Entity Framework 6.Wie Math-Funktionen für SQL Server mit Entity Framework 6
Ich habe eine einfache Abfrage senden:
using(var db = databaseContext)
{
var query = db.Foo.Select(x => Math.Sin(x.bar));
}
Doch diese gibt mir eine Ausnahme.
Eine Ausnahme vom Typ 'System.NotSupportedException' aufgetreten in EntityFramework.dll wurde aber in Benutzercode
Zusätzliche Informationen nicht behandelt: LINQ to Entities ist die Methode nicht erkennen ‚Double Sin (Doppel) 'Methode, und diese Methode kann nicht in ein Store-Ausdruck übersetzt werden.
Das Problem ist, dass Entity Framework nicht wissen, wie man Math.sin in ein Sql Server-Äquivalent übersetzt. Gibt es noch andere Klassen, die ich benutzen kann?
Verwenden Sie 'Math.Sin' auf der Codepage – Fabio
Ich kann dies nicht in der Code-Seite tun. Das obige Beispiel ist ein Spielzeugbeispiel, aber in Wirklichkeit mache ich das auf einer sehr großen Datenbank mit Millionen von Zeilen. Obendrein muss ich in der Lage sein, nach dieser mathematischen Funktion zu sortieren und meine Ergebnisse zu pagen. Dies auf der Codepage zu tun, ist keine Option. – Soto
@Soto bitte die richtige Antwort als "richtig" markieren, da eine andere Antwort mehr Upvotes hat - andere Benutzer mit dem gleichen Problem können dann zuerst die richtige Antwort sehen. Wie Sie sehen, wird die Antwort mit der code-basierten Lösung immer noch upvotes, was Performance kostet! Würdest du bitte ?! –