如何使用EntityFramework 4.1 CodeFirst阻止十进制值在保存时被截断为2个位置?

Ori*_*ian 29 c# decimal ef-code-first

可能重复:
实体框架代码优先:小数精度

我正在使用Linq-to-Entities和EntityFramework 4.1 Code First系统.保存时,我的所有decimal属性都被截断为两位小数.我可以检查被修改的对象,并且可以在调试器中看到具有正确的小数位数,并且我可以对数据库中的值进行硬编码以显示它可以接受正确的小数位数[在这种情况下decimal(4,3)] .但是当我保存该值时,它永远不会正确保存它,而是将decimal值截断为两位小数.我无法找到System.ComponentModel.DataAnnotations允许您指定精度的类.该类(已消毒),供参考:

public class Metrics
{
    public decimal? PPM { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Die*_*hon 39

public class MyContext : DbContext
{
    public DbSet<Metrics> Metrics { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Metrics>().Property(x => x.PPM).HasPrecision(4, 3);
    }
}
Run Code Online (Sandbox Code Playgroud)