我正在研究MVC 4架构.net项目。十进制参数的默认精度为(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));
}
答案 0 :(得分:0)
我知道这很老了,但我一直假设十进制数(在实体框架迁移中)用于赚钱。因此,精度是在模型上设置的,而不是在迁移级别上设置的。对数据库使用double,如果需要,可以使用float,然后根据需要进行转换。