2012-08-01 41 views
-2

四捨五入我有兩個表:產品和訂單。我的projetc是一個asp mvc3項目,我使用實體框架。爲什麼我的號被自理

在產品,我有場:價格(數字19,2) 爲了,我有場:單價(數字19,2)

這個價格應該是一樣的,他們是除在我的訂單表中,我的數字是四捨五入的。

任何想法,爲什麼?

有我的模型類

public class Product 
    { 
     [ScaffoldColumn(false)] 
     public int  ProductId { get; set; } 

     [StringLength(160)] 
     public string Name  { get; set; } 

     [DisplayName("Description")] 
     [StringLength(200)] 
     public string Description { get; set; } 

     [Required(ErrorMessage="error")] 
     [Range(0.00, 10000.00, ErrorMessage="Error")] 
     public decimal Price  { get; set; } 

     public virtual List<OrderDetail> Order { get; set; } 
    } 


    public class Order 
    { 

     public int OrderId { get; set; } 
     public int ProductId { get; set; } 
     public int Quantity { get; set; } 

     public decimal UnitPrice { get; set; } 

     public virtual Product Product { get; set; } 
     public virtual Order Order { get; set; } 
    } 

謝謝您的幫助

+2

我的魔晶球是店裏的今天,我失敗了通靈101,讓我的心靈閱讀能力不是特別熱。你可以分享你的表格結構嗎?你可以分享你插入/更新這些表格的任何代碼嗎? – 2012-08-01 14:21:31

+1

當然我們需要更多信息。數字?小數點,int ..?什麼樣的 ?什麼引擎? (我假設SQL服務器) – 2012-08-01 14:22:21

回答

0

我與EF工作。無論我發現什麼是錯的。在我的訂單模型中,我忘記了添加範圍屬性。

[Range(0.00, 100000.00)] 
public decimal UnitPrice { get; set; } 

它工作正常。

1

你有Scale值設置爲0?如果是,則設置爲2或更多。

enter image description here

而且如果要保存使用存儲過程格蘭數據,確保存儲過程的參數類型也是同一類型。

+0

是的,我有數字刻度(19,4) – Alternative 2012-08-01 14:32:21

+0

@Alternative:檢查你傳遞的價值爲它的所有地方,變量等,以確保您使用相同的數據類型來支持你的價格與小數點 – Shyju 2012-08-01 14:33:22

+0

我使用的是相同的數據類型爲我所有的「價格」,甚至是「總」的變量。我通過添加[Range(xx,xx)]屬性來解決問題,就像我在回答中所說的那樣。我不知道這是否是最佳做法,但它是有效的。你怎麼看 ? – Alternative 2012-08-01 14:36:51