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
verwendetIch 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.
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%Manchmal müssen Casting, wenn mehr als zwei Dezimalstellen
%Vor%Tags und Links c# asp.net linq-to-sql casting decimal