【发布时间】:2017-05-30 08:41:54
【问题描述】:
在我的代码优先实体框架 sql 数据库中,我有一个指定为 18,3 的十进制值。 数据库对象:
public decimal? Kolhalt { get; set; }
在 OnModelCreating 我有
modelBuilder.Entity<Skada>().Property(o => o.Kolhalt).HasPrecision(18, 3);
在数据库中,该值指定为 Kolhalt (decimal(18, 3), null)
如果我直接在数据库中输入一个值,我会得到三位小数,但是当我使用 EntityFramework 插入或更新一个值时,它会被截断为两位小数。
使用 Sql server profiler 我可以看到 EF 为存储的值指定了 2 个小数:
[Kolhalt] = @14 ... @14 decimal(18,2) ... @14=5.12
(输入的值为 5.123)。
所以由于某种原因,当我调用 SaveChanges() 时,EF 会截断发送到数据库的值。
我是否必须在其他地方指定小数位数才能在 SaveChanges() 中正确显示?
最好的问候, 亨里克
【问题讨论】: