Пространственные DataReader и Wrapping Providers в EF6

entity-framework entity-framework-6

Вопрос

Чтобы разглядеть новый стиль обертывания провайдеров в EF6, я собрал образец, но я борюсь, когда дело доходит до чтения пространственных данных.

Исключением, которое я получаю, является

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Ниже приведен код ... если кто-нибудь может помочь мне определить, что неправильно, это было бы очень признательно.

Модель

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Миграции

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Упаковщики

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Приложение тестовой консоли

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Я использую EF 6.0.1 через NuGet. Я должен упустить что-то довольно очевидное, но не уверен, что это такое!

Обновить

Трассировки стека

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Обновление 2

Я создал пример приложения на Skydrive, который вы можете скачать и увидеть проблему, которую я получаю https://skydrive.live.com/redir?resid=8062EC63AFF4490A!107

Обновление 3

Хак, необходимый для работы обертки поставщика, выглядит следующим образом

Specified type is not registered on the target server.System.Data.Entity.Spatial.DbGeometry, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

Принятый ответ

Это похоже на ошибку в модели поставщика. SqlProviderServices преобразует пространственные типы EDM в пространственные типы SqlServer в методе SetParameterValue, однако нет общедоступного способа вызова этого метода у вашего поставщика упаковки. Я создал ошибку для отслеживания этого: https://entityframework.codeplex.com/workitem/1867 . Уродливым обходным решением будет вызов внутреннего метода SetParameterValue с использованием отражения.




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему