Fehler beim Lesen mit Entity-Framework

8

Ich habe ein Problem beim Lesen von Daten aus einer Tabelle mit Entity Framework.

Was ich versuche, ist eine Zeile aus der Tabelle nach Id zu lesen.

Dies ist meine SQL-Tabellendefinition:

%Vor%

Und das ist meine Klassendefinition:

%Vor%

Ich möchte die Id aus einer Abfragezeichenfolge lesen und sie verwenden, um die Zeile auszuwählen:

%Vor%

Ich bekomme den Fehler von der Zeile: return query.First();

Dies ist die Fehlerbeschreibung:

  

An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code

     

Additional information: The 'Ware_Price' property on 'Ware' could not be set to a 'System.Double' value. You must set this property to a non-null value of type 'System.Single'.

Weiß jemand, wie ich das beheben kann?

PS .: Ich habe bereits versucht, Ware_Price in System.Single type zu ändern, aber es hat immer noch nicht funktioniert.

    
A.Moshayyedy 31.07.2015, 12:23
quelle

1 Antwort

9

A float(53) auf der SQL-Seite ist 8 Bytes. A float (aka Single ) auf der C # -Seite ist 4 Bytes. Sie haben einen Datentyp, der nicht übereinstimmt zwischen SQL Server und .NET.

  

Die 'Ware_Price' Eigenschaft auf 'Ware' konnte nicht auf einen 'System.Double' Wert gesetzt werden.

Dies bedeutet, dass Entity Framework eine System.Double ( double ) von der Tabelle erhalten hat.

  

Sie müssen diese Eigenschaft auf einen Wert ungleich Null vom Typ 'System.Single' festlegen.

Dies bedeutet, dass Ihre Eigenschaft nur Werte vom Typ System.Single ( float ) akzeptieren kann. Der Entity Framework hat den Unterschied erkannt und mit InvalidOperationException reagiert.

Um es zu beheben, müssen Sie den Ware_Price -Datentyp in Ihrer Ware -Klasse bis zu einem double erhöhen.

Ich würde weiter vorschlagen, dass für monetäre Werte decimal der richtige Datentyp wäre, sowohl in SQL als auch in .NET, insbesondere , wenn Sie damit rechnen wollen (Summierung eines großen Anzahl der Preise, zum Beispiel).

    
Cᴏʀʏ 31.07.2015, 12:27
quelle

Tags und Links