繁体   English   中英

如何在实体框架代码优先迁移中设置小数精度和小数位数

[英]How to set decimal precision and scale in entity framework code first migrations

我正在使用实体框架迁移,并且需要设置实体中十进制属性的精度和小数位数。 我只想对此单个十进制属性(而不是所有十进制属性)执行此操作。 我已经重写了OnModelCreating方法,以默认将小数设置为(18,2)。 我需要此属性为(22,5)。 例如

public class AdditionalCharge
{
  public decimal? Rate { get; set; }
}

在数据库中被创建为“十进制(18,2)NULL”列。 我需要它成为“十进制(22,5)NULL”列。

我可以创建一个空迁移并手动编码更改,

public override void Up()
{
  AlterColumn("dbo.AdditionalCharge", "Rate", c => c.Decimal(nullable: true, precision: 22, scale: 5));
}

但是我只想更改C#声明,然后让迁移创建更改。

有没有办法做到这一点?

麦克风

您还可以在OnModelCreating设置列的精度:

modelBuilder.Entity<AdditionalCharge>().Property(o => o.Rate ).HasPrecision(22, 5);

但是我不知道更改是否会在迁移中进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM