簡體   English   中英

實體框架將小數位附加到十進制類型的字段(10,0)

[英]Entity framework appending a decimal place to a field of type decimal(10,0)

我先使用EF數據庫。 在我的數據庫中,我有一個字段,我知道它總是10位數字,所以我自然選擇了decimal(10,0)類型,當我在表中插入值時,我可以插入任何長達10位的數字但是,當我插入一個帶有EF6的實體時,它會添加一個0十進制數,然后拋出一個超出范圍值的參數。 我的C#代碼中的字段類型是decimal

在此輸入圖像描述

這是調用context.SaveChanges()之前的實體:

在此輸入圖像描述

並進行健全性檢查,這是sql server中的列: 在此輸入圖像描述

編輯

這是EF映射:

在此輸入圖像描述

剛剛在codeplex上報道了它

這個錯誤聽起來像EF中的一個錯誤,但如果它總是一個整數,那么使用int而不是十進制會不會更有意義嗎? 我在考慮邏輯和性能。

這實際上是SqlClient中的一個錯誤 - SqlDecimal代碼無法正確處理某些邊緣情況的精度。

我相信罪魁禍首就在這里: http//referencesource.microsoft.com/#System.Data/data/System/Data/SQLTypes/SQLDecimal.cs#416

但是,鑒於這種情況已經存在了很長時間,因此它不太可能被修復。 我建議使用bigint解決這個問題,比如user1648371和Andrew Morton建議的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM