ho una stored procedure che utilizza parametri di uscita come questo:perso precisione decimale e scala utilizzando LINQ e stored procedure con parametri di output
ALTER PROCEDURE [GetAmount]
(
@orderID [int],
@totalcost decimal(18,2) OUTPUT
)
SELECT @totalcost = cost
FROM mytable
WHERE orderID = @orderID
Quando ho trascinare la procedura immagazzinata nella finestra di progettazione, il codice conseguente file designer.cs finisce per perdere la precisione e la scala, in questo modo:
[Parameter(DbType="Decimal")] ref System.Nullable<decimal> totalcost
questo è un problema, perché le cose come i prezzi dei prodotti e totali degli ordini vengono arrotondate per eccesso (cioè 19,95 diventa 20).
Ora, posso correggere manualmente il file .cs, ma dovrei ricordarmi di farlo ogni volta che viene effettuato un aggiornamento. Sto facendo qualcosa di sbagliato? C'è un modo per modificare la mia stored procedure che consentirebbe a LINQ di rilevare automaticamente la precisione e la scala?
Interessante: il denaro funziona. Qualche idea, perché? – Ethan
Non so davvero perché il decimale non funzioni correttamente. Dovrei giocarci ancora un po '. Scusate. –