Wir haben eine Code-First-Datenbank in unserem Projekt, mit einer Dezimalzahl in einem unserer Modelle. Wir setzen die Dezimal-Genauigkeit auf (6, 2), die wir in unserer MySQL-Datenbank-Struktur überprüft haben. Die Sortierung der db ist utf8_unicode_ci
.C# Falscher Dezimalwert von EF6 Code-First DB mit MySQL
Wir haben einen Wert von 4.00
aus einer Sicht in die Datenbank gespeichert, die korrekt war. Jetzt, wo wir versuchen, den Wert von der db zurück zu bekommen, anstatt 4.00
oder 4.00m
zu bekommen, erhalten wir 400M
. Das Komma ist nur gegangen.
Alle Hilfe wird geschätzt.
(Aber bitte nicht vor, mit 100. Dividieren Das hässliche Fixierung ist und du weißt es.)
EDIT Modell:
public class RSU
{
public int Id { get; set; }
public virtual RSUSlot SlotRef { get; set; }
public decimal? Length { get; set; }
}
INSERT Code:
using(dbCOntext db = new dbCOntext())
{
db.Add(new RSU{ Length = 4.00m });
db.SaveChanges();
}
ERHALTEN:
public static CabinetConfig GetCabinet(M4CDbContext db, int id)
{
return db.CabinetConfig
.Include(m => m.RSURef)
.Where(m => m.Id == id)
.FirstOrDefault();
}
Kann dieses Problem nicht replizieren. Kann uns dein Problem durch eine ** sql fiddle ** zeigen? – 1000111
Geben Sie bitte auch den Code der 'INSERT' und der' SELECT' der 'dezimal' an. – Smartis
Angst, ich kann nicht in einer Geige reproduzieren. Wenn wir 'select * from rsu' in unserer lokalen Datenbank ausführen, erhalten wir eine Liste mit Werten' 4.00'. Es ist ein MVC-Projekt mit EF6 –