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)
我很久以前就遇到过这个问题。将此方法(如果不存在)添加到您的 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))