Dapper空间地理类型
本文关键字:类型 空间 Dapper | 更新日期: 2023-09-27 18:26:42
我正在编写一些空间示例,并决定尝试Dapper,尽管EF有空间支持,我很喜欢再次控制我的SQL(感谢Sam和Marc)。
然而,我需要能够拥有支持DbGeography类的POCO。例如:
public class BuriedTreasure {
public int PirateId { get; set; }
public DbGeography MarksTheSpot { get; set; }
}
我的谷歌foo一直让我失望,我能找到的最接近的匹配就是这个问题,尽管它只适合添加空间支持作为参数(所以它有50%)。
现在,就我所见,我仅限于以下选项,对我来说,这两个选项都不是可行的解决方案。
- 自定义适配器代码以了解SQL Server特定的类型
- 指定LONG、LAT&在我的POCO中使用ELEVATION小数,并在我的存储过程中创建SPATIAL类型,并使用另一个过程来检索值(或者使用持久化的计算列,但这几乎相同)
替代方案?
对于任何感兴趣的人,我基本上选择了上面发布的问题中的选项2。我把我的空间数据映射到小数。存储过程进行了一些额外的检查,因此很容易在其中构造点,即以下片段:
Yarrrr = geography::Point(@Latitude, @Longitude, 4326)
本质上,DbGeography类是不可变的,这表明。。。RTFM:)
根本不需要更改适配器!