Casting to Decimal wird in LINQ to Entities-Abfragen nicht unterstützt

8

Ich habe eine Datenbanktabelle Transaction (transactionID, LocalAmount ...). Der Datentyp für die Localamount-Eigenschaft ist float . Auf der Benutzeroberfläche versuche ich eine SUMME der Spalte (Localamount) in einer Zeile bei einem Klickereignis zurückzugeben.

Ich habe dezimal anstatt float

verwendet

Ich erhalte jedoch einen Fehler in dem Code, in dem ich auf dezimal

umsetze %Vor%

Das

%Vor%

Ich habe einige Optionen aus den folgenden Posts ausprobiert, aber ohne Glück.

Kann jemand darauf hinweisen, welche anderen Möglichkeiten ich ausprobieren kann? Entschuldige mein kleines Wissen über LINQ, wenn es zu trivial ist.

    
shaz 18.02.2013, 15:41
quelle

3 Antworten

10

Entity Framework zeigt an, dass es die gewünschte Konvertierung nicht unterstützt. Eine Problemumgehung besteht darin, einfach so viel Arbeit in der Datenbank auszuführen, wie Sie können, und dann den Prozess im Speicher abzuschließen. In Ihrem Fall können Sie die Summe in ihrem nativen Typ berechnen, das Ergebnis als anonymen Typ in den Speicher ziehen und dann Ihre Konvertierung durchführen, während Sie den Typ konstruieren, den Sie tatsächlich benötigen. Um Ihre ursprüngliche Abfrage zu übernehmen, können Sie folgende Änderung vornehmen:

%Vor%     
Anthony Pegram 18.02.2013, 16:11
quelle
1

Ich würde vorschlagen, dass Sie den Cast nach Abschluss Ihrer Anfrage durchführen

%Vor%     
lumee 18.02.2013 15:48
quelle
1

Manchmal müssen Casting, wenn mehr als zwei Dezimalstellen

%Vor%     
quelle