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