【发布时间】:2022-01-04 14:29:48
【问题描述】:
我试图将纬度和经度存储到我的数据库中。
我的表中有这些列:
[Latitude] NUMERIC(12, 8) NULL,
[Longitude] NUMERIC(12, 8) NULL,
在C#模型类中,我的属性是:
[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; }
我想将这些 Latitude 和 Longitude 值存储到我的数据库表中。
我在这里做错了什么?请帮忙
decimal lats = decimal.Parse("56.12345678");
decimal longs = decimal.Parse("10.18732210");
context.test.Add(new test
{
Latitude = lats,
Longitude = longs
});
context.SaveChanges();
它将值存储在数据库表中,如下所示:
Latitude: 56.12000000
Longitude : 10.18000000
我希望将相同的值存储在数据库中:
"56.12345678"
"10.18732210"
【问题讨论】:
-
尝试将精度添加到
TypeName。例如numeric(12,8) -
我已经在这个列的 Sql 中有这个类型
-
你在使用 EF Core 吗?
-
您的 c# 还需要注意精度。您可以使用下面答案中提供的 Fluent API 方法,但是由于您已经在使用数据注释来提供类型,因此我将通过将精度添加到
TypeName中来指定它。
标签: c# sql-server asp.net-mvc decimal