Dies ist ein Problem, das mir gegenübersteht, was Genauigkeitsverlust beim Speichern in SQL Server-Datenbank von C# Entity Framework verursacht.Verlust der Präzision von C# zu SQL Server
- SQL Server-Datentyp ist
decimal(20, 15)
- In C# Property als
public decimal AssignedGrossBudget { get; set; }
definiert ist - in C# Wert in Variable (AssignedGrossBudget) ist 34,09090909090909
- Aber in SQL Server-Tabelle ist es 34,090000000000000
Was könnte falsch sein? (Ich verwende Entity Framework db.SaveChanges(); und SQLBulkCopy zum Speichern von Daten von C# zu SQL Server)
Ich möchte 34.09090909090909 statt 34.090000000000000 speichern.
Ich überprüft, indem Sie direkt in die Tabelle einfügen und es funktioniert.
können Sie den Code der Massenkopie bereitstellen? – Fredou
Pls verwenden den Profiler, um exakte, von EF generierte Anweisungen zu erfassen und Textdaten zu posten. – dean
Wahrscheinlich müssen Sie die Genauigkeit für EF konfigurieren: http://StackOverflow.com/questions/3504660/decimal-precision-and-scale-in-ef-code-first – Uriil