首页 > 解决方案 > 使用 PostgreSQLCopyHelper 时如何应用 ST_GeomFromText() 函数来格式化文本 (https://github.com/PostgreSQLCopyHelper/PostgreSQLCopyHelper)

问题描述

INSERT INTO geotable (geometrydata) values (ST_GeomFromGeoJSON(@geometrydata));

如何在 c# 代码中使用 PostgreSQLCopyHelper 将上述插入语句运行到 posgresql 数据库。试图做这样的事情。

var copyHelper = new PostgreSQLCopyHelper<GeoData>("geotable ") .Map("geometrydata", x => x.geometrydata, NpgsqlDbType.Geometry);

geometrydata 是一个字符串,如下所示。

`var geometrydata = "{\"type\":\"Polygon\",\"coordinates\":[[[-81.800007507357,24.491670214271,0.0],[-81.800007507357,24.500003548802,0.0],[-81.7916741718259,24.500003548802,0.0],[-81.7916741718259,24.491670214271,0.0],[-81.800007507357,24.491670214271,0.0]]]}"`

使用 PostgreSQLCopyHelper 时如何使用 postgis 函数格式化数据。( https://github.com/PostgreSQLCopyHelper/PostgreSQLCopyHelper )

标签: c#postgresqlpostgisnpgsql

解决方案


使用 加载数据时不能调用函数COPY

如果您真的需要,您必须在表上创建一个视图并在视图上使用INSTEAD OF触发器,将合适的已处理行插入到表中。

UPDATE将数据加载到临时表并在所有行上执行转换可能会更好。


推荐阅读