2012-02-07 36 views
0

我有一個退出的數據庫,有幾個float/double字段,我選擇使用EF4.1爲我的DAL/ORM,但我在讀取/保存數據時遇到問題字段類型。沒有模型,只需使用模型構建器來配置實體。我認爲浮點數學是典型的,因爲所有的精度都被設置爲2位小數,我在c#(EF)方面切換到使用十進制類型,但是現在當我我試圖找到一個實體,我得到一個異常說我有麻煩。ef4 poco double/float dbtype mapping

'YYY'上的'xxxkg'屬性不能設置爲'Double'值。 您必須將此屬性設置爲「Decimal」類型的非空值。

xxxkgfloat null的數據庫,該值是10在特定的情況下,並在課堂上是

public decimal? xxxkg { get; set; } 

的問題是如何處理與EF4 DBTYPE浮點/雙精度變量(POCO)?

回答

0

如果它在數據庫中是雙倍的,那麼您不能將您的屬性定義爲十進制。 EF不會鍵入轉換(並且不允許您定義自己的值)並且double值不能分配給十進制變量,因此從讀取記錄填充您的類將失敗。你必須使用雙。

+0

是的,它確實讓我先做,但是當我需要更新表中現有的條目時,它不能很好地發揮作用並拋出錯誤。所以,我使用double,並執行Math.Round()來設置精度。 – hazimdikenli 2012-02-13 07:53:26