EF ruft falsche Dezimalgenauigkeit ab

8

Ich benutze Entity Framework 6.1, Code-zuerst. Ich versuche, eine Dezimalzahl von SQL Server zu speichern / abzurufen, aber die korrekte Genauigkeit wird nicht abgerufen. Ich lese aus einer .csv-Datei, verarbeitet die Daten und fügt sie dann in die DB ein.

  • Wert in der CSV-Datei: 1.1390
  • Wert beim Speichern als decimal aus dem Import: 1.1390
  • In DB eingegebener Wert: 1.139
  • Wert, der tatsächlich in SSMS gespeichert / angezeigt wird: 1.1390
  • Wert beim manuellen Ausführen der Abfrage, die SQL Profiler für den Abruf erfasst: 1.1390
  • Von EF abgerufener Wert: 1.1300

Alles funktioniert, außer dass der Wert abgerufen wird. Ich habe versucht, die Lösung in jedem anderen SO-Post (unten), aber es hat keine Wirkung. Was läuft hier falsch? Wie kann ich den richtigen Wert mit der richtigen Genauigkeit abrufen?

Vorgeschlagene Lösung:

%Vor%

Abrufmethode, gibt den Typ ClassA mit falscher Genauigkeit zurück:

%Vor%

Vergleich zwischen den zwei Dezimalwerten:

%Vor%

ClassA :

%Vor%     
vaindil 13.01.2016, 19:21
quelle

1 Antwort

3

Es stellte sich heraus, dass ich die Genauigkeit auf die gleiche Weise spezifizieren musste, aber in der fließenden Abbildung für ClassA . Die Angabe in OnModelCreating() hat es nicht gemacht, aber im fliessenden Mapping hat es funktioniert. Speziell:

%Vor%     
vaindil 13.01.2016, 20:32
quelle

Tags und Links