Una de las cosas molestas de Entity Framework es que traduce el tipo de variable Decimal como Decimal (18, 0) en SQL.
El número después de la coma es el número de posiciones decimales permitido en el número. Entonces Decimal (18,0) despojará los números después del punto decimal cuando guarde.
Vaya a SQL Server Management stuido, encuentre su base de datos, haga clic derecho en la tabla y seleccione "Diseño". Luego seleccione la columna de la lista y podrá cambiar el tipo de datos a Decimal (18, 2) simplemente escribiendo en el cuadro. Luego guarde los cambios en la mesa. A continuación, guardará el número en los dos lugares decimales habituales utilizados en las transacciones en moneda occidental. Si necesita más lugares decimales, simplemente incremente el segundo número dentro de los corchetes.
Nunca he encontrado una configuración que cambie este valor predeterminado de EF para que genere Decimal (18, 2) en su lugar. Pero luego nunca miré: es bastante fácil cambiar en la base de datos. Pero si alguien sabe de uno, me gustaría saber cómo se hace.
EDIT: Más información - incluyendo la configuración del arreglo - en esta respuesta: Decimal precision and scale in EF Code First
prueba un ejemplo de código que podría ser más claro? – sarin