2014-11-22 61 views
3

我得到以下異常,而試圖通過的EntityFramework參數值「163753323027.987000000」超出範圍

InnerException: An error occurred while updating the entries. See the inner exception for details. 
InnerException -> InnerException: Parameter value '163753323027.987000000' is out of range. 

我試圖提供的所有解決方案,以節省分貝值。但仍然無法解決問題。我正在使用EntityFramework,SQL Server。這不是代碼優先。

在我的表我有一列

ActualHydPressureDropPipe decimal(30, 10) 

的應用價值正試圖在數據庫存儲爲163753323027.987000000

我不能嘗試在這裏here提供,因爲我DONOT有EntityTypeConfiguration類的答案。

我想答案給here

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Mud_Volumes>().Property(x => x.ActualHydPressureDropPipe).HasPrecision(30, 10); 
    base.OnModelCreating(modelBuilder); 
} 

這不是工作要麼。我不知道爲什麼控制器沒有進入上述方法。可能是因爲這不是第一個代碼。

我在EDMX檢查我有

<Property Type="Decimal" Name="ActualHydPressureDropPipe" Nullable="false" Precision="30" Scale="10" /> 

請指點。

+0

嘗試只是163753323027,也許這會告訴你一些事情的原因。 – toddmo 2014-11-22 06:39:48

回答

2

我試了一切。我試圖提高精度和範圍..但問題仍然存在。有趣的是,一旦我重新啓動我的Visual Studio它會自動解決。

奇怪。但有些時候有些事情只是需要重新啓動才能解決問題。

1

我有類似的問題。當寫入小數點(18,0)時,我的錯誤消息是: 參數值'0.7880523731587561374795417349'超出範圍。

我試着上面的解決方案重新啓動VS,但沒有運氣。然而,增加的四捨五入解決我的問題:

Math.Round((0.7880523731587561374795417349m), 4) 

搞笑的是,這工作,甚至實際上十進制(18,0)的任何數字不存儲小數點後。應該用十進制(18,4)來正確保存圓形圖形。