空間型のプロバイダー サポート

Entity Framework では、DbGeography または DbGeometry クラスを使用して空間データを扱うことができます。 これらのクラスには、Entity Framework プロバイダーが提供するデータベース固有の機能が利用されています。 すべてのプロバイダーで空間データがサポートされるわけではなく、空間型アセンブリのインストールなど、追加の前提条件が適用される場合もあります。 以降、空間型に関するプロバイダー サポートについて詳しく取り上げます。

アプリケーションでの空間型の使用方法について詳しくは、2 つのチュートリアルを参照してください。1 つは Code First、もう 1 つは Database First または Model First を対象とした内容となっています。

空間型をサポートする EF リリース

空間型のサポートは EF5 で導入されました。 ただし、EF5 で空間型がサポートされるのは、アプリケーションが .NET 4.5 を対象に実行される場合に限られます。

EF6 以降では、.NET 4 と .NET 4.5 の両方を対象とするアプリケーションで空間型がサポートされます。

空間型をサポートする EF プロバイダー

EF5

EF5 の Entity Framework プロバイダーのうち、空間型をサポートすると Microsoft が認識しているプロバイダーは次のとおりです。

  • Microsoft SQL Server プロバイダー
    • このプロバイダーは EF5 に同梱されます。
    • このプロバイダーは別途いくつかの低レベル ライブラリに依存しており、それらのインストールが必要になる場合があります (詳細は後述)。
  • Devart dotConnect for Oracle
    • これはサードパーティのプロバイダーで、Devart から提供されています。

空間型をサポートする EF5 プロバイダーをご存じであれば、こちらのリストに追加したいと思いますので、ぜひご連絡ください。

EF6

EF6 の Entity Framework プロバイダーのうち、空間型をサポートすると Microsoft が認識しているプロバイダーは次のとおりです。

  • Microsoft SQL Server プロバイダー
    • このプロバイダーは EF6 に同梱されます。
    • このプロバイダーは別途いくつかの低レベル ライブラリに依存しており、それらのインストールが必要になる場合があります (詳細は後述)。
  • Devart dotConnect for Oracle
    • これはサードパーティのプロバイダーで、Devart から提供されています。

空間型をサポートする EF6 プロバイダーをご存じであれば、こちらのリストに追加したいと思いますので、ぜひご連絡ください。

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 のインストールから空間型が除外された場合は、それらを手動でインストールする必要があります。 これらの型は、Microsoft SQL Server Feature Pack に含まれている SQLSysClrTypes.msi を使用してインストールできます。 空間型は SQL Server バージョン別に用意されています。Microsoft ダウンロード センターで「SQL Server Feature Pack」を検索し、使用するバージョンの SQL Server に対応するオプションを選択してダウンロードすることをお勧めします。