У меня есть объект / таблица, использующая sqlgeography.
Поскольку EF 4.X не поддерживает пространственные типы, я вместо этого отправляю байты поля туда и обратно.
Я сохранил проки на стороне базы данных, которая обрабатывает диалог и свойства на стороне кода для выполнения этой работы.
Чтобы добавить свойства в коде, я использовал частичный класс.
Один изэти свойства предназначены для SqlGeography, который просто обтекает свойство byte [] для обработки получения и установки.
Это свойство скрыто от EF с использованием атрибута NotMappedAttribute.
Другое свойство - это экспонированиесам байт [] и украшен EdmScalarPropertyAttribute и DataMemberAttribute.
Затем я перехожу к конструктору модели EF (* .edmx), чтобы указать модель сущности на хранимые процедуры вставки / обновления / удаления.
Он находит сохраненные процессы в порядке и понимает, что они (когда это уместно) принимают параметр VARBINARY.
В нем также есть выпадающий списокиз-за того, что вы выбрали свойство класса сущности, которое сопоставляется с этим параметром.
Однако в этом раскрывающемся списке нет ни одного из моих свойств.Меня не волнует свойство SqlGeography, поскольку оно предназначено для сокрытия от EF, однако для меня жизненно важно иметь возможность указать его на свойстве byte [], поскольку именно отсюда поступают данные.
Я бы очень хотел избежать триггеров базы данных или классов-оболочек и дополнительных полей, чтобы заставить это работать.
Я попытался вручную отредактировать файл .edmx, включив в него свойство byte [], но затемпросто жалуется, что он не нанесен на карту.
Может кто-нибудь дать мне некоторое представление о том, как заставить это работать?Или альтернативный метод достижения конечного результата?