Я использую sql express 2008 и vs2008, пишу на C#.
У меня есть таблица db со столбцом Geography в ней, в которую мне нужно поместить данные GPS, которые я собрал. Когда я попытался создать сопоставление Entity-Framework для этой таблицы, он просто проигнорировал столбец с некоторым предупреждением о невозможности сопоставить такие типы столбцов. Затем я посмотрел на проект nHibernate.Spatial, но похоже, что он переводит только типы Geometry, а не Geography. Не повезло. Мне сказали, что я могу использовать представление с приведением Geography к VarBinary, а затем в созданном классе сущности добавить еще одно свойство, которое десериализует двоичный файл обратно в Geography. Я предполагаю, что это сработает для чтения данных из базы данных, но мне также нужно вставить эти строки в мою базу данных, и я не могу добавлять строки в представление. Есть ли какой-нибудь другой трюк, который я могу использовать, чтобы легко читать и записывать данные географии из моей базы данных в моем коде на C#?
насколько я могу судить, NHibernate.Spatial пока поддерживает только тип геометрии





Я мало что знаю об EF, но NHibernate позволяет расширить его структуру типов с помощью IUserType. Немного об этом есть на Блог Рэя Хьюстона.
Я успешно использовал это для создания типа, который использует XmlSerialization для поля Xml на основе Пример Айенде
В настоящее время Entity Framework v1 не поддерживает SQL UDT-2008. Тип Spacial - UDT.
Вы можете хранить данные долгого и долгого времени с помощью WKB (byte [] / varbinary).
Кстати, я не заметил никакой поддержки UDT во время Microsoft MIX09 для следующей версии (1.5 CTP). Возможно, я что-то упустил.
С NHibernate вы можете использовать NHibernate.Spatial для лучшего отображения.