。NET Core模型四舍五入为我的十进制值

问题描述 投票:0回答:1

我有一个.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的任何想法?

c# .net-core-2.0
1个回答
0
投票

modelBuilder.Entity<Models.Cog.CogDetail>().Property(x => x.Lmn).HasPrecision(18, 0);

© www.soinside.com 2019 - 2024. All rights reserved.