tengo un procedimiento almacenado que utiliza parámetros de salida como esta:Perdido precisión decimal y la escala utilizando LINQ y el procedimiento almacenado con parámetros de salida
ALTER PROCEDURE [GetAmount]
(
@orderID [int],
@totalcost decimal(18,2) OUTPUT
)
SELECT @totalcost = cost
FROM mytable
WHERE orderID = @orderID
Cuando arrastrar el procedimiento almacenado en el diseñador, el código resultante en el designer.cs archivo termina por perder la precisión y escala, como esto:
[Parameter(DbType="Decimal")] ref System.Nullable<decimal> totalcost
este es un problema, porque cosas como precios de los productos y los totales del pedido se redondean hacia arriba (es decir, se convierte en 19,95 20).
Ahora, puedo corregir manualmente el archivo .cs, pero tendría que recordar hacerlo cada vez que se realiza una actualización. ¿Estoy haciendo algo mal? ¿Hay alguna forma de cambiar mi procedimiento almacenado que permita a LINQ detectar automáticamente la precisión y la escala?
Interesante - el dinero HACE el trabajo. ¿Alguna idea de por qué? – Ethan
Realmente no sé por qué el decimal no funciona bien. Debería jugar con eso un poco más. Lo siento. –