【问题标题】:Dapper Spatial Geography Type简洁的空间地理类型
【发布时间】:2013-08-06 18:48:58
【问题描述】:

我正在编写一些空间示例并决定试一试 Dapper,尽管 EF 有空间支持,而且我喜欢再次控制我的 SQL(感谢 Sam 和 Marc)。

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

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

我的 Google foo 让我失望了,我能找到的最接近的匹配项是 this 问题,尽管它只适合将空间支持作为参数添加(所以它是 50%)。

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

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

替代方案?

【问题讨论】:

    标签: c# sql-server spatial dapper


    【解决方案1】:

    对于任何感兴趣的人,基本上我在上面发布的问题中选择了选项 2。我将空间数据映射到小数。存储过程做了一些额外的检查,因此很容易在其中构造点,即以下 sn-p :

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

    本质上,DbGeography 类是不可变的,展示... RTFM :)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2012-02-24
      • 2010-12-14
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多