在Entity Framework Core中定義Postgres DB的數值數據類型的精度

c# entity-framework-core linq postgresql

我正在使用帶有實體框架核心的 Postgres數據庫。

在我的數據庫中,Price表具有列price(numeric)並且存儲的值如12345.123456789012345678901234567890 ,即(高精度)

當我使用LINQ查詢獲取數據時,每次我收到錯誤:

“System.OverflowException:數值不適合System.Decimal”

我找到了在OnModelCreating()方法中使用Property.HasColumnType("decimal(20,5)")作為數據庫列的方法,但它不起作用。此外,我已經看到在edmx文件中定義選擇查詢,但實體框架核心不生成edmx文件。

那麼,我們如何在C#中使用Entity Framework Core定義Postgres的數值數據類型的精度? (注意:精度可以減少到至少5位小數)

熱門答案

在此處輸入圖像描述十進制不支持高精度,因此您使用Double Double Wise價值轉換為十進制值

例:

1.存儲價值= 1234.12345678901234567890

tabledetails.Select(c =>(decimal) c.value).ToList();

獲得Vlaue是1234.12345678901

2.其他明智之前使用小數存儲價格值然後使用以下格式

商店價值

1234.12345678901234567890米

獲得價值

1234.12345678901234567890



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow