在sql中插入小数会导致插入零数而不是零附近的小数

Moh*_*idi 5 c# entity-framework-ctp5 sql-server-2012

在从我的代码中插入一个像0.0001这样的浮点数到sql中,结果在数据库中是0.0000.这是我的表列的定义:

decimal(20,15) 
Run Code Online (Sandbox Code Playgroud)

这是类字段的定义:

public decimal Rate {get ; set; }
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

我正在使用EF Code第一种方法:

Class1 obj = new Class1();
obj.Rate = 0.000001;
ClassDbSet.Add(obj);
DbContext.SaveChange();
Run Code Online (Sandbox Code Playgroud)

Ali*_*ghi 3

我很久以前就遇到过这个问题。将此方法(如果不存在)添加到您的 DbContext 中:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
     modelBuilder.Entity<Class1>().Property(rec => rec.Rate).HasPrecision(20, 15);
}
Run Code Online (Sandbox Code Playgroud)

当您在 EF 中声明这样的变量并且不提及任何有关浮点数有多少精度的信息时,EF 引擎接受默认值 (decimale(18,2))