2008-12-22 14 views
13

Actualmente estoy trabajando en un proyecto en el que tengo que lidiar con los tipos de geodatos 2008 del servidor sql. Como gran parte de los proyectos usa NHibernate como ORM, me pregunto cuánto trabajo será usar/extender NHibernate.Spatial con este tipo (hasta donde puedo ver, Nh Spatial solo admite el tipo de geometría). Por cierto. ¿Hay algún otro .NET ORM que soporte este tipo de sql? graciasNHibernate.Spatial and Sql 2008 Geography type

+0

Estoy buscando lo mismo. ¿Ya has descubierto algo? ¿Cuál es su solución actual para los tipos de geografía de servidores nhibernate y sql 2008? –

+2

tomé la implementación SqlGeometry de Ricardo Stuven de NHSpatial y la extendí para trabajar con el tipo de SqlGeography. todavía hay algunos errores menores, pero puedo usar tipos de IGeometry y usar geografía como back-end. Enviaré el código a los chicos del NHSP tan pronto como tenga tiempo para refactorizarlo/limpiarlo. –

+0

Cool. Espero ver/usarlo. –

Respuesta

2

no sé específicamente sobre espacial, pero siempre se puede extender NHibernate para hacer frente a sus tipos personalizados que es bastante sencillo (ver NHibernate Custom Mapping Types), pero la cosa es que usted tiene que explicar cómo hacer frente a los tipos de geografía a NHibernate (consulte el espacio de nombres NHibernate.Type), que indica NH cómo convertir el valor de ida y vuelta en SQL.

Puede que no sea la cosa más fácil en el mundo pero se puede hacer, muchas personas pueden ayudarlo en nhusers y definitivamente aprenderá mucho sobre el funcionamiento interno de un OR/M.

1

Pregunté lo mismo en NHUsers en enero. NHSpatial tiene soporte limitado para tipos de geografía. Verifique el hilo en NHUsers a continuación, puede "utilizar" tipos de Geometría para algunas aplicaciones de geografía.

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

Véase también el enlace que Ricardo ha publicado en el grupo para el blog de Isaac Kunen que da un ejemplo interesante del problema del vecino más cercano en SQL.

Así que, básicamente, la respuesta: Ningún NHSpatial no admite geografía, pero puede usar tipos de geometría para algunos problemas básicos de geografía (por ejemplo, la distancia entre dos puntos). Pero es mejor ejecutar una consulta SQL nativa para obtener toda la potencia de los tipos de geografía de SQL Server 2008.