小编Mou*_*uad的帖子

使用带有 EF Core 和 postgis 的 NetTopologySuite 计算两点之间的地理距离

我正在使用kartoza docker 镜像来运行带有 postgis 的 postgres 服务器。我有一个使用 ASP.NET Core 应用程序和 Enity Framework Core 使用的数据库。该数据库包含一个名为 Park 的表,该表由以下实体表示:

[Table("Park")]
public class Park
{
     [Key]
     public int Id { get; set; }

     [Column(TypeName = "geography (point)")]
     public Point Location { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在按照文档的指定创建 DbContext:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasPostgresExtension("postgis");

    modelBuilder.Entity<Park>()
        .Property(p => p.Location)
        .HasColumnType("geography (point)");
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码为数据库播种:

if (!Parks.Any())
{
    var park = new Park
    {
        Location = new Point(48.8566, 2.3522)
        {
            SRID = 4326
        }
    };

    Parks.Add(park); …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis nettopologysuite entity-framework-core .net-core

5
推荐指数
1
解决办法
4065
查看次数