gpt4 book ai didi

entity-framework - EntityFramework 在达到一定精度后未检测到小数的变化

转载 作者:行者123 更新时间:2023-12-03 23:25:19 25 4
gpt4 key购买 nike

我遇到了应用程序中最疯狂的行为。我正在使用 EF 6 并且有一个带有小数属性的模型,支持的数据库类型是小数 (18,4)。如果我将小数点的值从 0.6500 更改为 0.6550 并在上下文中保存更改,则该行不会更新。如果我将其从 0.6500 更改为 0.1350 并保存更改,该行将被更新,但该值将保存为 0.1300,因此它丢失了 0.005。我知道数据库可以像目前对一些手动插入的数据那样保持这种精度,EF 可以毫无问题地检索它。

我到底需要做什么才能让 EF 更新我的行/保持精度。非常感谢帮助,我可能会哭。

最佳答案

所以我在离开这个问题一段时间后找到了我自己问题的答案。 EF 默认的小数精度似乎是 2,我可以自己覆盖它并根据需要将其设置为 4。我从这个先前回答的问题中窃取了代码:

Set decimal(16, 3) for a column in Code First Approach in EF4.3

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<MyClass>().Property(x => x.SnachCount).HasPrecision(16, 3);
modelBuilder.Entity<MyClass>().Property(x => x.MinimumStock).HasPrecision(16, 3);
modelBuilder.Entity<MyClass>().Property(x => x.MaximumStock).HasPrecision(16, 3);
}

关于entity-framework - EntityFramework 在达到一定精度后未检测到小数的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com