DecimalPropertyConvention
默认情况下,Entity Framework 将十进制属性映射到数据库表中的十进制(18,2)列。
public class Box
{
public int Id { set; get; }
public decimal Length { set; get; }
public decimal Width { set; get; }
public decimal Height { set; get; }
}
我们可以改变小数属性的精度:
1.使用 Fluent API:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Box>().Property(b => b.Width).HasPrecision(20, 4);
}
只有宽度属性映射到十进制(20,4)。
2.更换惯例:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<DecimalPropertyConvention>();
modelBuilder.Conventions.Add(new DecimalPropertyConvention(10, 4));
}
每个十进制属性都映射到十进制(10,4)列。