2017-06-26 87 views
0

我試圖從使用N-Hibernate的Oracle數據庫檢索List。在數據庫中,某些字段的值更精確(20-22位),而C#類的屬性的類型爲doubleOCI-22053:溢出錯誤

在這種情況下,如何將數據庫中的數據存儲到C#List

TestTable

Oracle Field - TestField 
     Value - -3845585825867490000000000000000 

甲骨文列數據類型

FLOAT - TestField 

C#房產

[Property(Column = "TestField", NotNull = true)] 
public virtual double TestField { get; set; } 

C#代碼

ICriteria crit = this.Session.CreateCriteria(typeof(TestTable)); 
IList<TestTable> list = crit.List<TestTable>(); //got error at this line 

,因爲我使用N個休眠我不能使用ROUND

回答

1

嘗試將C#屬性的數據類型更改爲decimal - 我認爲它具有足夠的精度來處理您的情況。

看起來好像還有一些關於decimal NHibernate字段here的映射。

0

FLOAT在Oracle中是NUMBER子類型,必須映射到.net decimal。它不符合.Net double

如果您實際需要的東西類似.Net double,請在Oracle中使用BINARY_DOUBLE(或BINARY_FLOAT)。