Как использовать пространственные типы данных в asp.net vnext с EF 7?

в vnext, используя Entity Framework 7 (https://github.com/aspnet/EntityFramework), как использовать типы пространственных данных (например, DbGeography) в модели (код-первый метод) для сохранения точек, фигур и т.д. при создании модели для таблицы.

например.

public DbGeography gps_points {get; set;}

Я не могу использовать DbGeography.


Update:

Подтверждено, что эта функция пока недоступна в EF7, но может быть доступна в будущих версиях.

чтобы отслеживать любые изменения:

https://github.com/aspnet/EntityFramework/issues/242

https://github.com/aspnet/EntityFramework/issues/1100

Ответ 1

Обращаясь к вашей собственной проблеме в репозитории github Entity Framework, пока не существует никакой реализации. Поскольку эта веха была установлена ​​на "отставание", похоже, что эта проблема не будет решена в ближайшем будущем.

Если вам не нужно обрабатывать данные географически на стороне базы данных (например, поиск в ограничивающей рамке или пересечениях), вы можете сохранить свои данные как Хорошо известный текст. Это можно легко преобразовать в тип геометрии базы данных, если EF7 поддерживает пространственные данные в будущем.

Помните о ограничениях длины строки в вашей базе данных, так как WKT может долго оставаться спокойным для сложных форм.

Ответ 2

Вам нужно добавить ссылку на System.Data.Entity.Spatial. Я не думаю, что теперь он включен по умолчанию в справочной системе EF, поэтому причина, по которой вы не можете использовать DbGeography.

Помните, что все подключи и играй!

Ответ 3

Поддержка пространственных типов была введена в EF5. Однако в EF5 пространственные типы поддерживаются только тогда, когда приложение нацелено и работает на .NET 4.5.

Начиная с пространственных типов EF6 поддерживаются приложения, ориентированные как на .NET 4, так и на .NET 4.5.

поставщик Microsoft SQL Server зависит от некоторых дополнительных низкоуровневых библиотек, которые могут потребоваться для установки.

Предпосылки для пространственных типов с Microsoft SQL Server

Поддержка пространственной поддержки SQL Server зависит от типов низкого уровня, специфичных для SQL Server SqlGeography и SqlGeometry. Эти типы живут в сборке Microsoft.SqlServer.Types.dll, и эта сборка не поставляется как часть EF или как часть .NET Framework.

Когда Visual Studio установлен, он часто также будет устанавливать версию SQL Server, и это будет включать установку Microsoft.SqlServer.Types.dll.

Если SQL Server не установлен на компьютере, где вы хотите использовать пространственные типы, или если пространственные типы были исключены из установки SQL Server, вам необходимо будет установить их вручную. Типы включены в пакет функций SQL Server Feature Pack, и существуют различные сборки для SQL Server 2008 и SQL Server 2012.