Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用db函数的ServiceStack.OrmLite中添加自定义字段类型?_C#_Orm_Gis_Postgis_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">ormlite Servicestack - Fatal编程技术网 ormlite-servicestack,C#,Orm,Gis,Postgis,ormlite Servicestack" /> ormlite-servicestack,C#,Orm,Gis,Postgis,ormlite Servicestack" />

C# 如何在使用db函数的ServiceStack.OrmLite中添加自定义字段类型?

C# 如何在使用db函数的ServiceStack.OrmLite中添加自定义字段类型?,c#,orm,gis,postgis,ormlite-servicestack,C#,Orm,Gis,Postgis,ormlite Servicestack,如何使用调用db扩展函数的自定义字段类型?在这种情况下 从PostGIS安装页面稍微修改: CREATE TABLE mytable ( id SERIAL PRIMARY KEY, geom GEOMETRY(POINT, 26910) ) ; INSERT INTO mytable (geom) VALUES (ST_GeomFromText('POINT(0 0)', 26910)) ; SELECT id FROM mytabl

如何使用调用db扩展函数的自定义字段类型?在这种情况下

从PostGIS安装页面稍微修改:

CREATE TABLE 
  mytable ( 
    id SERIAL PRIMARY KEY,
    geom GEOMETRY(POINT, 26910)
  )
; 

INSERT INTO 
  mytable (geom) 
VALUES 
  (ST_GeomFromText('POINT(0 0)', 26910))
;

SELECT 
  id
FROM 
  mytable
WHERE 
  ST_DWithin(geom, ST_GeomFromText('POINT(0 0)', 26910), 1000)
;
这个表是如何在代码中生成的?它是如何被查询的

class mytable
{
  [AutoIncrement]
  [PrimaryKey]
  public int id;

  [???]
  public ??? geom;
}

相关SO问题:

这是一个老问题,但当我看到这个问题时,我想到了这个问题,所以我想我会加上这个,以防它对其他人有帮助。请注意,现在可能有更好的方法在ServiceStack中实现这一点,因为自最初的问题以来,ServiceStack已大幅增加了功能

我还没有能够使用ServiceStack(几何体字段返回为null)实现这一点,但我使用了Npgsql,如下所示

选择-use::Text,如下所示-

       var conn = new NpgsqlConnection(connectionString);
        conn.Open();

        var cmd = new NpgsqlCommand(
            "select  id, geom :: TEXT from mytable", conn);
         var conn = new NpgsqlConnection(connectionString);
        conn.Open();

        using (var cmd = new NpgsqlCommand(
            "INSERT INTO mytable( geom) VALUES ( st_geomfromtext ( 'POINT(0,0)':: TEXT, 1000))",
            conn)){cmd.ExecuteNonQuery()}
插入-使用标准插入,如下所示-

       var conn = new NpgsqlConnection(connectionString);
        conn.Open();

        var cmd = new NpgsqlCommand(
            "select  id, geom :: TEXT from mytable", conn);
         var conn = new NpgsqlConnection(connectionString);
        conn.Open();

        using (var cmd = new NpgsqlCommand(
            "INSERT INTO mytable( geom) VALUES ( st_geomfromtext ( 'POINT(0,0)':: TEXT, 1000))",
            conn)){cmd.ExecuteNonQuery()}