我正在使用实体框架迁移,需要在实体中设置小数属性的精度和比例。我只想为这个单个十进制属性而不是所有十进制属性执行此操作。我已经重写了OnModelCreating方法,默认情况下将decimal设置为(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#声明,让迁移创建更改。
有办法吗?
麦克
答案 0 :(得分:4)
您也可以在OnModelCreating
中设置列的精度:
modelBuilder.Entity<AdditionalCharge>().Property(o => o.Rate ).HasPrecision(22, 5);
但我不知道迁移过程中是否会收到更改。