Tag: postgis

Npgsql参数化查询输出与PostGIS不兼容

我在Npgsqlcommand中有这个参数化查询: UPDATE raw.geocoding SET the_geom = ST_Transform(ST_GeomFromText(‘POINT(:longitude :latitude)’, 4326),3081) WHERE id=:id :longutide和:latitude是double , id是int 。 实际上针对数据库运行的查询如下所示: UPDATE raw.geocoding SET the_geom = ST_Transform(ST_GeomFromText(‘POINT(((E’-96.6864379495382′)::float8) ((E’32.792527154088′)::float8))’, 4326),3081) WHERE id=((10793455)::int4) 感谢Erwin Brandstetter的帮助,显然需要简化查询才能使用PostGIS。 他建议: UPDATE raw.geocoding SET the_geom = ST_Transform(ST_GeomFromText( $$POINT(:longitude :latitude)$$::geometry, 4326), 3081) WHERE id = :id 我想我可以使用动态查询来创建它,我每次运行时都会手动更新查询,但有没有办法使用Npgsql参数化查询来完成这项工作?

PostGISentity framework

我试图使用Npgsql和Npgsql.EntityFramework与地理数据类型。 我可以将数据写入数据库,但我无法检索它。 我不确定这是否可行,所以我将不胜感激。 表示该表的类如下所示: internal class Geo { [Key, Column(“geo_test_id”)] public int GeoId { get; set; } [Column(“geography”)] public byte[] Geography { get; set; } } 数据插入如下所示: var geog1 = System.Data.Spatial.DbGeography.FromText(“POINT(-118.4079 33.9434)”); var geog2 = System.Data.Spatial.DbGeography.FromText(“POINT(2.5559 49.0083)”); using (var db = new Database.MyDbContext()) { db.Geos.Add(new Database.Geo() { Geography = geog1.AsBinary() }); db.Geos.Add(new Database.Geo() { Geography […]