我有一个.NET Core 2.0应用程序,它正在从API中提取数据,并试图将其保存到表cog_detail中(使用模型CogDetail)
foreach (Models.Cog.CogDetail cd in cdList)
{
_context.CogDetail.Add(cd);
_context.SaveChanges();
}
其中一个值称为Lmn,当我检查cd中的值时显示为2.60895M(我在_context.CogDetail.Add(cd)上有一个断点)
但是一旦保存,它将在数据库中另存为3
SQL Server表的列为十进制(18,0),为空
我的情况是这样的:
modelBuilder.Entity<Models.Cog.CogDetail>(entity =>
{
entity.HasKey(e => new { e.Test_ID, e.TCode }).HasName("PK_cog_detail");
entity.ToTable("cog_detail", "cog");
entity.Property(e => e.Test_ID)
.HasColumnName("test_id")
.HasColumnType("int");
entity.Property(e => e.TCode)
.HasColumnName("tcode")
.HasColumnType("varchar(10)");
entity.Property(e => e.Lmn)
.HasColumnName("lmn")
.HasColumnType("decimal(18, 0)");
});
关于为什么将其四舍五入而不是保持为2.60895的任何想法?
modelBuilder.Entity<Models.Cog.CogDetail>().Property(x => x.Lmn).HasPrecision(18, 0);