【发布时间】:2021-07-10 02:16:49
【问题描述】:
我正在尝试使用 Dapper 将多边形作为 MySqlGeometry。
但是 MySql 连接器仅将 MySqlGeometry 理解为 Point。
我还需要其他类型,比如多边形。
这是我从其他论坛得到的:
// 1. Add Dapper custom Type handler.
Dapper.SqlMapper.AddTypeHandler(new MySqlGeometryTypeHandler());
// 2. Implement that custome handler.
public class MySqlGeometryTypeHandler : SqlMapper.TypeHandler<MySqlGeometry>
{
public override MySqlGeometry Parse(object value) { return new MySqlGeometry(MySqlDbType.Geometry, (byte[])value); }
public override void SetValue(System.Data.IDbDataParameter parameter, MySqlGeometry value) { parameter.Value = value; }
}
// 3. Here is the Data class
public class Geo
{
public int Id { get; set; }
public MySqlGeometry G { get; set; }
}
// 4. Here is the Dapper query
List<Geo> datas = Dapper.SqlMapper.Query<Geo>(cnn, "select * from geo;").ToList();
如何获取“地理”表中的多边形行?
【问题讨论】: