использование структуры лица / nhibernate с типом географии sql2008 - PullRequest
1 голос
/ 16 октября 2008

Я использую sql express 2008 и vs2008, пишу на c #.

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

Ответы [ 2 ]

1 голос
/ 18 октября 2008

Я не очень разбираюсь в EF, но NHibernate позволяет расширять структуру типов с помощью IUserType. Немного об этом есть в блоге Рэя Хьюстона .

Я успешно использовал это для создания типа, который использует XmlSerialization для поля XML, на основе примера Айенде

0 голосов
/ 07 мая 2009

В настоящее время Entity Framework v1 не поддерживает SQL UDT - 2008 Пространственный тип UDT.

Вы можете сохранить свои данные long / lat, используя WKB (byte [] / varbinary).

В качестве примечания я не заметил никакой поддержки UDT во время Microsoft MIX09 для следующей версии (1.5 CTP). Возможно, я что-то пропустил.

...