小巧玲珑的空间地理类型

我正在编写一些空间示例,并决定给Dapper一个机会,虽然EF有空间支持,我很想再次控制我的SQL(感谢Sam和Marc)。

但是,我需要能够拥有支持DbGeography类的POCO。 例如 :

public class BuriedTreasure { public int PirateId { get; set; } public DbGeography MarksTheSpot { get; set; } } 

我的谷歌foo一直让我失望,我能找到的最接近的匹配是这个问题,虽然它只是为了增加空间支持作为参数(所以它在那里是50%)。

现在,据我所知,我仅限于以下选项,对我来说这两种选择都不是一个可行的解决方案。

  1. 自定义dapper代码以了解SQL Server特定类型
  2. 在我的POCO中指定LONG,LAT和ELEVATION小数,并在我的存储过程中创建SPATIAL类型,并有另一个过程来检索值(或使用持久计算列,但几乎相同)

备择方案?

对于任何有兴趣的人,基本上我在上面发布的问题中选择了2。 我将空间数据映射到小数。 存储过程会进行一些额外的检查,因此很容易构建其中的点,即以下代码段:

 Yarrrr = geography::Point(@Latitude, @Longitude, 4326) 

从本质上讲,DbGeography类是不可变的,去显示…… RTFM 🙂

根本不需要改变短小精悍!