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)
使用COPY
加载数据时不能调用函数
如果您确实需要这样做,则必须在表上创建一个视图,并在视图上使用INSTEAD OF
触发器,将适当处理过的行插入到表中。
将数据加载到staging表中,并在所有行上使用UPDATE
执行转换可能会更好。