更改十进制默认精度实体框架

本文关键字:实体 框架 精度 默认 十进制 | 更新日期: 2023-09-27 18:17:07

我正在做一个MVC 4架构。net项目。decimal参数的默认精度是(18,2)。我做了一些迁移更改,并将其更改为(18,6)。所以现在数据库存储了小数点后的6位数字范围,但问题是它没有存储有问题的值集。它只选择2位数字,然后把0000加到6。

例如:用户发送45.233222,则数据库中存储的值为45.230000。手动进入数据库工作完全正常。我是这方面的新手…因此,请建议如何更改十进制参数的默认精度,使其在数据库中存储六位数精度。

我所做的迁移更改。

public override void Up()
        {
            AlterColumn("dbo.TItems", "SubTotal", c => c.Decimal(nullable: false, precision: 18, scale: 6));
            AlterColumn("dbo.TItems", "UnitPrice", c => c.Decimal(nullable: false, precision: 18, scale: 6));
        }
public override void Down()
        {
            AlterColumn("dbo.TItems", "SubTotal", c => c.Decimal(nullable: false, precision: 18, scale: 2));
            AlterColumn("dbo.TItems", "UnitPrice", c => c.Decimal(nullable: false, precision: 18, scale: 2));
        }

更改十进制默认精度实体框架

我知道这是旧的,但我总是假设十进制(在实体框架迁移中)用于货币。因此,精度是在模型上设定的,而不是在迁移级别上。对数据库使用double,如果需要的话使用float,然后根据需要进行强制类型转换。