2009-01-06 11 views
7

Ben böyle çıktı parametrelerini kullanan bir saklı yordam:çıkış parametreleri ile ondalık hassasiyet ve LINQ kullanarak ölçek ve saklı yordam Kayıp

ALTER PROCEDURE [GetAmount] 
( 
@orderID [int], 
@totalcost decimal(18,2) OUTPUT 
) 
SELECT @totalcost = cost 
FROM mytable 
WHERE orderID = @orderID 

Ben tasarımcı, sonuçta kod üzerine depolanmış yordam sürüklediğinizde designer.cs dosyası bu gibi duyarlık ve ölçeği kaybetme biter: ürün fiyatları ve sipariş toplamları gibi şeyler (yani 19.95 20 olur) yuvarlanır ediliyor çünkü

[Parameter(DbType="Decimal")] ref System.Nullable<decimal> totalcost 

Bu, bir sorundur.

Şimdi, .cs dosyasını elle düzeltebilirim, ancak bir güncelleştirme yapıldığında bunu yapmayı hatırlamak zorundayım. Yanlış bir şey mi yapıyorum? LINQ'un hassasiyeti ve ölçeği otomatik olarak algılamasını sağlayan saklı yordamımı değiştirmenin bir yolu var mı?

cevap

2

Para tipini decial (18,2) tipi yerine kullanabilir misiniz?

+0

İlginç - para çalışmıyor. Herhangi bir fikir neden? – Ethan

+0

Ondalık neden doğru çalışmıyor bilmiyorum. Bununla biraz daha oynamalıyım. Afedersiniz. –

3

el .cs dosyasını düzeltebilir, ancak

Doğru, kısmi sınıf dosyasına bu kodu taşımak orada haritalama en hassas düzenleyebilir ve tasarımcı saklı yordam düşmesi gerek .

Bu, saklı yordam için eşleme kodunda bir el ile belirtim sağlar.

+0

GENIUS !!! Keşke o yaşlarda yapmayı düşündüm. – BG100

İlgili konular