Entity-framework-spatial-data-type
提供:Dev Guides
Entity Framework-空間データ型
Entity Framework 5で空間タイプのサポートが導入されました。 クエリで空間データを分析できるようにするための一連の演算子も含まれています。 たとえば、クエリは、2つの地理的位置間の距離に基づいてフィルタリングできます。
- Entity Frameworkを使用すると、新しい空間データ型をクラスのプロパティとして公開し、データベースの空間列にマップできます。
- また、空間演算子を使用してデータベースで実行される空間計算に基づいてフィルター処理、並べ替え、グループ化を行うLINQクエリを作成することもできます。
2つの主な空間データタイプがあります-
- 地理データタイプには、GPSの緯度と経度の座標などの楕円体データが格納されます。
- ジオメトリデータタイプは、ユークリッド(フラット)座標系を表します。
次のクリケット場の例を見てみましょう。
- ステップ1 *-[ファイル]→[新規]→[プロジェクト]メニューオプションから新しいプロジェクトを作成します。
- ステップ2 *-左ペインで、コンソールアプリケーションを選択します。
- ステップ3 *-プロジェクト名を右クリックして、[NuGetパッケージの管理…]を選択します
- ステップ4 *-Entity Frameworkをインストールします。
- ステップ5 *-System.Data.Entityアセンブリへの参照を追加し、空間データ型のステートメントを使用してSystem.Data.Spatialも追加します。
- ステップ6 *-Program.csファイルに次のクラスを追加します。
- ステップ7 *-エンティティの定義に加えて、DbContextから派生し、DbSet <TEntity>プロパティを公開するクラスを定義する必要があります。
Program.csでコンテキスト定義を追加します。
- ステップ8 *-次のコードをMain関数に追加します。これにより、2つの新しいCricketGroundオブジェクトがコンテキストに追加されます。
空間プロパティは、DbGeography.FromTextメソッドを使用して初期化されます。 WellKnownTextとして表される地理ポイントがメソッドに渡され、データが保存されます。 その後、その場所が指定された場所に最も近いCricketGroundオブジェクトが取得されます。
上記のコードが実行されると、次の出力が表示されます-
理解を深めるために、上記の例を段階的に実行することをお勧めします。