我有一個帶decimal(18, 3)列的表。該表映射到具有相應decimal屬性的類。
我將屬性的值更改為,例如 0.035,這是由 EF 生成的用于更新列的命令:
exec sp_executesql N'UPDATE [dbo].[mytable]
SET [mycolumn] = @0
WHERE ([id] = @1)
',N'@0 decimal(18,2),@1 int',@0=3,@1=3
我需要刻度最多為小數點后 3 位(我正在這樣做),但它在更新時被截斷為 2。
為什么會發生這種情況,我該如何解決這個問題?
uj5u.com熱心網友回復:
您可以在配置每個屬性的方法中呼叫HasColumnType("decimal(18,3)")或避免呼叫,如下所示:HasColumnType()OnModelCreating()
entity.Property(e => e.mycolumn)
.HasColumnType("decimal")
.HasDefaultValueSql("00.000");
EF 默認使用 2 的比例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/521482.html
標籤:C#sql服务器实体框架sql-server-2019
下一篇:根據字符位置分隔欄位
