【问题标题】:NHibernate.Spatial and Sql 2008 Geography typeNHibernate.Spatial 和 Sql 2008 地理类型
【发布时间】:2010-09-27 23:56:09
【问题描述】:

我目前正在处理一个项目,我必须处理 sql server 2008 地理类型。 由于项目的大部分使用 NHibernate 作为 ORM,我想知道使用/扩展 NHibernate.Spatial 这种类型需要做多少工作(据我所知,Nh Spatial 仅支持几何类型)。 顺便提一句。还有其他支持这种 sql 类型的 .net ORM 吗? 谢谢

【问题讨论】:

  • 我正在寻找同样的东西。你有什么发现吗?您当前对 nhibernate 和 sql server 2008 地理类型的解决方案是什么?
  • 我从 NHSpatial 中获取了 Ricardo Stuven 的 SqlGeometry 实现,并将其扩展为使用 SqlGeography 类型。它仍然有一些小错误,但我可以使用 IGeometry 类型并使用地理作为后端。一旦我有时间重构/清理它,我会将代码发送给 NHSP 人员。
  • 酷。我期待看到/使用它。
  • 期待您加入 NHSpatial 项目 Joachim Kerschbaumer!
  • @Joachim - 你成功了吗?谢谢:-)

标签: c# nhibernate sql-server-2008 spatial geography


【解决方案1】:

我不具体了解空间,但您始终可以扩展 NHibernate 以处理您的自定义类型,这非常简单(请参阅NHibernate Custom Mapping Types)但问题是您必须解释如何处理地理类型以NHibernate(参见命名空间 NHibernate.Type)告诉 NH 如何将值来回转换为 SQL。

这可能不是世界上最简单的事情,但可以做到,很多人可能会在nhusers 中帮助你,你一定会学到很多关于 OR/M 的内部工作原理的知识。

【讨论】:

    【解决方案2】:

    我在一月份在 NHUsers 中问过同样的问题。 NHSpatial 对地理类型的支持有限。检查下面 NHUsers 的线程,您可以在某些地理应用程序中“某种程度上”使用几何类型。

    http://groups.google.com/group/nhcdevs/browse_thread/thread/752b046c0ce959b0/9596204d0dd0ff47?q=#9596204d0dd0ff47

    另请参阅 Ricardo 在小组中发布的指向 Isaac Kunen 博客的链接,该链接给出了 SQL 中最近邻问题的一个有趣示例。

    所以基本上,答案是:没有 NHSpatial 不支持地理,但您可以将几何类型用于一些基本的地理问题(例如两点之间的距离)。但您最好运行原生 SQL 查询以充分利用 SQL Server 2008 的地理类型。

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2011-09-17
      • 2010-12-04
      相关资源
      最近更新 更多