13

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

4

2 回答 2

2

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

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

于 2009-01-30T10:04:15.977 回答
1

一月份我在 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 地理类型的全部功能。

于 2009-11-10T19:59:23.833 回答