NHibernate.Spatial и Sql 2008 Тип географии
В настоящее время я работаю над проектом, где мне приходится иметь дело с типом географии sql server 2008.
Поскольку большая часть проектов использует NHibernate как ORM, я задаюсь вопросом, сколько работы будет использовать/продлить NHibernate.Spatial с этим типом (насколько я могу видеть, что Nh Spatial поддерживает только тип геометрии).
Btw. есть ли там какой-либо другой .net ORM, поддерживающий этот тип sql?
спасибо
Ответы
Ответ 1
Я не знаю конкретно о пространственном, но вы всегда можете расширить NHibernate, чтобы иметь дело с вашими настраиваемыми типами, которые довольно просты (см. Типы пользовательских сопоставлений NHibernate), но дело в том, что вы должны объяснить, как обращаться с типами географии в NHibernate (см. namespace NHibernate.Type), teling NH, как преобразовать значение в SQL и обратно.
Это может быть не самая простая вещь в мире, но ее можно сделать, многие могут помочь вам в nhusers, и вы будете определенно много узнайте о внутренней работе OR/M.
Ответ 2
Я спросил то же самое в NHUsers еще в январе. NHSpatial имеет ограниченную поддержку типов географии. Проверьте поток на NHUsers ниже, вы можете "сортировать" использование типов геометрии для некоторых приложений географии.
http://groups.google.com/group/nhcdevs/browse_thread/thread/752b046c0ce959b0/9596204d0dd0ff47?q=#9596204d0dd0ff47
Также см. ссылку, которую Рикардо опубликовал в группе в блоге Исаака Куна, который дает интересный пример проблемы ближайшего соседа в SQL.
Итак, в основном, ответ: No NHSpatial не поддерживает географию, но вы можете использовать типы геометрии для некоторых основных проблем географии (например, расстояние между двумя точками). Но вам лучше запускать собственный запрос SQL, чтобы получить всю полноту типов географии SQL Server 2008.