Partilhar via


Suporte do provedor para tipos espaciais

O Entity Framework oferece suporte ao trabalho com dados espaciais por meio das classes DbGeography ou DbGeometry. Essas classes dependem da funcionalidade específica do banco de dados oferecida pelo provedor do Entity Framework. Nem todos os provedores oferecem suporte a dados espaciais e aqueles que oferecem podem ter pré-requisitos adicionais, como a instalação de assemblies de tipo espacial. Mais informações sobre o suporte do provedor para tipos espaciais são fornecidas abaixo.

Informações adicionais sobre como usar tipos espaciais em um aplicativo podem ser encontradas em duas instruções passo a passo, uma para Code First, a outra para Database First ou Model First:

Versões do EF que oferecem suporte a tipos espaciais

O suporte para tipos espaciais foi introduzido no EF5. No entanto, no EF5 os tipos espaciais só são suportados quando o aplicativo se destina e é executado no .NET 4.5.

A partir do EF6, há suporte para tipos espaciais para aplicativos direcionados ao .NET 4 e ao .NET 4.5.

Provedores do EF que oferecem suporte a tipos espaciais

EF5

Os provedores do Entity Framework para EF5 que sabemos que oferecem suporte a tipos espaciais são:

  • Provedor do Microsoft SQL Server
    • Esse provedor é fornecido como parte do EF5.
    • Esse provedor depende de algumas bibliotecas adicionais de baixo nível que talvez precisem ser instaladas — consulte abaixo para obter detalhes.
  • Devart dotConnect para Oracle
    • Este é um provedor terceirizado da Devart.

Se você souber de um provedor EF5 que suporta tipos espaciais, entre em contato e ficaremos felizes em adicioná-lo a esta lista.

EF6

Os provedores do Entity Framework para EF6 que sabemos que oferecem suporte a tipos espaciais são:

  • Provedor do Microsoft SQL Server
    • Esse provedor é fornecido como parte do EF6.
    • Esse provedor depende de algumas bibliotecas adicionais de baixo nível que talvez precisem ser instaladas — consulte abaixo para obter detalhes.
  • Devart dotConnect para Oracle
    • Este é um provedor terceirizado da Devart.

Se você souber de um provedor EF6 que suporta tipos espaciais, entre em contato e ficaremos felizes em adicioná-lo a esta lista.

Pré-requisitos para tipos espaciais com o Microsoft SQL Server

O suporte espacial do SQL Server depende dos tipos específicos do SQL Server de baixo nível SQLGeography e SQLGeometry. Esses tipos vivem no assembly Microsoft.SqlServer.Types.dll e esse assembly não é fornecido como parte do EF ou como parte do .NET Framework.

Quando o Visual Studio é instalado, ele geralmente também instalará uma versão do SQL Server, e isso incluirá a instalação do Microsoft.SqlServer.Types.dll.

Se o SQL Server não estiver instalado no computador em que você deseja usar tipos espaciais ou se os tipos espaciais foram excluídos da instalação do SQL Server, será necessário instalá-los manualmente. Os tipos podem ser instalados usando SQLSysClrTypes.msi, que faz parte do Pacote de Recursos do Microsoft SQL Server. Os tipos espaciais são específicos da versão do SQL Server, portanto, recomendamos procure por "Pacote de Recursos do SQL Server" no Centro de Download da Microsoft e selecione e baixe a opção que corresponde à versão do SQL Server que você usará.