Dapper空间地理类型

3

我正在编写一些与空间相关的示例,并决定尝试使用Dapper,虽然EF具有空间支持,但我很喜欢再次控制我的SQL(感谢Sam和Marc)。

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

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

我的谷歌技能让我失望了,最接近的匹配是 这个 问题,尽管它只适用于将空间支持添加为参数(所以它达到了50%的效果)。
就我所看到的,我的选择受限于以下选项,但对我来说,两者都不是可行的解决方案:
1. 自定义dapper代码以理解SQL Server特定类型 2. 在我的POCO中指定LONG、LAT&ELEVATION小数,并在我的存储过程中创建SPATIAL类型,再使用另一个过程检索值(或使用持久化计算列,但几乎相同)
还有其他替代方法吗?
1个回答

1

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

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

实际上,DbGeography类是不可变的,这表明... RTFM :)

根本不需要对dapper进行任何更改!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接