我在 Npgsql 命令中有这个参数化查询:
UPDATE raw.geocoding
SET the_geom = ST_Transform(ST_GeomFromText('POINT(:longitude :latitude)', 4326),3081)
WHERE id=:id
:longutide
并且:latitude
是double,并且id
是int。
实际针对 DB 运行的查询如下所示:
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 here的帮助,很明显需要简化查询以使用 PostGIS。他建议这样做:
UPDATE raw.geocoding
SET the_geom = ST_Transform(ST_GeomFromText(
$$POINT(:longitude :latitude)$$::geometry, 4326), 3081)
WHERE id = :id
我想我可以使用动态查询来创建它,每次运行时我都会手动更新查询,但是有没有办法使用 Npgsql 参数化查询来实现它?