EF Code First中的小数精度和小数位数

我正在尝试这种代码优先的方法,但是现在我发现System.Decimal类型的属性被映射到类型为October(18,0)的sql列。

如何设置数据库列的精度?

回答:

Dave Van den Eynde的答案现在已过时。从EF

4.1开始,有2个重要更改,ModelBuilder类现在是DbModelBuilder,现在有DecimalPropertyConfiguration.HasPrecision方法,其签名为:

public DecimalPropertyConfiguration HasPrecision(

byte precision,

byte scale )

其中precision是db将存储的总位数,而不管小数点在哪里,而scale是它将存储的小数位数。

因此,无需遍历所示的属性,而可以仅从中调用

public class EFDbContext : DbContext

{

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)

{

modelBuilder.Entity<Class>().Property(object => object.property).HasPrecision(12, 10);

base.OnModelCreating(modelBuilder);

}

}

以上是 EF Code First中的小数精度和小数位数 的全部内容, 来源链接: utcz.com/qa/430908.html

回到顶部