存储到 SQL 服务器时,在 2 位数字添加零后进行十进制修剪

Decimal Trimmed after 2 digits added Zeros while store to SQL Server

我试图将纬度和经度存储到我的数据库中。

我的 table 中有这些专栏:

[Latitude]  NUMERIC(12, 8) NULL,
[Longitude] NUMERIC(12, 8) NULL,

在 C# 模型 class 中,我的属性是:

[Column(TypeName = "numeric")]
[Range(-9999.99999999, 9999.99999999)]
public decimal? Latitude { get; set; }

[Column(TypeName = "numeric")]
[Range(-9999.99999999, 9999.99999999)]
public decimal? Longitude { get; set; }

我想将这些 LatitudeLongitude 值存储到我的数据库 table。

我在这里做错了什么?请帮忙

decimal lats = decimal.Parse("56.12345678");
decimal longs = decimal.Parse("10.18732210");

context.test.Add(new test
        {
            Latitude = lats,
            Longitude = longs
        });
context.SaveChanges();

它将值存储在数据库中 table 如下所示:

Latitude: 56.12000000  
Longitude : 10.18000000

我想在数据库中存储相同的值:

"56.12345678"     
"10.18732210"

您可能还需要像这样在 OnModelCreating 中指定它:

modelBuilder.Entity<Test>().Property(a => a.Latitude).HasPrecision(18, 9);
modelBuilder.Entity<Test>().Property(a => a.Longitude).HasPrecision(18, 9);

以防万一您需要更多高级功能并且您使用的是 EF Core,请查看: https://docs.microsoft.com/en-us/ef/core/modeling/spatial