如何在实体框架代码中首次迁移设置小数精度和比例

时间:2015-05-20 13:27:40

标签: c# entity-framework ef-migrations

我正在使用实体框架迁移,需要在实体中设置小数属性的精度和比例。我只想为这个单个十进制属性而不是所有十进制属性执行此操作。我已经重写了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#声明,让迁移创建更改。

有办法吗?

麦克

1 个答案:

答案 0 :(得分:4)

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

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

但我不知道迁移过程中是否会收到更改。