@@ -76,6 +76,7 @@ public async Task CreateTable()
7676
7777 await using ( var cmd = new NpgsqlCommand ( """
7878 CREATE TABLE testdrive.example (
79+ id STRING,
7980 -- Numeric types
8081 null_integer INT,
8182 integer INT,
@@ -389,13 +390,15 @@ public async Task InsertGeoJsonString()
389390 /***
390391 * Communicate GeoJSON types as strings, marshall from/to GeoJSON types manually.
391392 */
392- Console . WriteLine ( "Running InsertGeoRaw " ) ;
393+ Console . WriteLine ( "Running InsertGeoJsonString " ) ;
393394
394395 // Insert single data point.
395396 await using ( var cmd = new NpgsqlCommand ( """
396397 INSERT INTO testdrive.example (
398+ "id",
397399 "geoshape"
398400 ) VALUES (
401+ @id,
399402 @geoshape
400403 );
401404 """ , conn ) )
@@ -412,11 +415,13 @@ INSERT INTO testdrive.example (
412415 ] ) ;
413416 // TODO: Can GEO_SHAPE types be directly marshalled to a .NET GeoJSON type?
414417 // Currently, `InsertGeoJsonTyped` does not work yet.
418+ cmd . Parameters . AddWithValue ( "id" , "point" ) ;
415419 cmd . Parameters . AddWithValue ( "geoshape" , NpgsqlDbType . Json , JsonConvert . SerializeObject ( point ) ) ;
416420 cmd . ExecuteNonQuery ( ) ;
417421
418422 cmd . Parameters . Clear ( ) ;
419423
424+ cmd . Parameters . AddWithValue ( "id" , "polygon" ) ;
420425 cmd . Parameters . AddWithValue ( "geoshape" , NpgsqlDbType . Json , JsonConvert . SerializeObject ( poly ) ) ;
421426 cmd . ExecuteNonQuery ( ) ;
422427 }
@@ -436,14 +441,15 @@ INSERT INTO testdrive.example (
436441 await InsertGeoJsonString ( ) ;
437442
438443 // Query back data.
439- await using ( var cmd = new NpgsqlCommand ( "SELECT * FROM testdrive.example" , conn ) )
444+ await using ( var cmd = new NpgsqlCommand ( "SELECT * FROM testdrive.example WHERE id='point' " , conn ) )
440445 await using ( var reader = cmd . ExecuteReader ( ) )
441446 {
442447 reader . Read ( ) ;
443448 // TODO: Can GEO_SHAPE types be directly marshalled to a .NET GeoJSON type?
444449 // Currently, `InsertGeoJsonTyped` does not work yet.
445450 var obj = reader . GetFieldValue < JsonDocument > ( "geoshape" ) ;
446- var geoJsonObject = JsonConvert . DeserializeObject < Point > ( obj . RootElement . ToString ( ) ) ;
451+ var payload = obj . RootElement . ToString ( ) ;
452+ var geoJsonObject = JsonConvert . DeserializeObject < Point > ( payload ) ;
447453 return ( Point ? ) geoJsonObject ;
448454 }
449455 }
0 commit comments