Entity Framework June CTPでは、空間(Spatial)データ型がオフィシャルにサポートされるようになった。しばらくの間、これらのデータ型を扱うためには回避策がとられていたが、SQL Server 2008以降には、空間型が含まれていたが、Entity Data Model (EDM)でのプリミティブサポートははじめてになる。
空間データ型は、開発者が地図上のシェイプ、ライン、ポイントなどのような座標を使ってデータを表現することができる。Geometry(幾何学)とGeography(地理学)の2つの異なる空間データ型を使用することができる。幾何学(Geometry)は、平面(すなわちユーグリッド)上のシェイプ、ポリゴンのエリアのような位置を表現することができる。Geographyは、楕円データ(地球の形状を考慮)して、GPS座標などのアイテムを参照するために使用することができる。GeometryとGeographyのどちらもOpen Geospatial Consortium (OGC)仕様に従っている。
以前、空間データはSqlGeography型とSqlGeometry型を使ってクライアント側で表現されていた。Entity Frameworkでは、DbGeography型とDbGeometry型を使って、SQL Serverを超えて、他のデータプロバイダをサポートするのが最終的な目標である。(現在は、SQL Server以外の空間データの扱いは、シリアライゼーションやデシリアライゼーションのような、基本的なサービスに制限される。)
マイクロソフトのEntity Frameworkにおける空間の他のゴールは、
- Entity Designerにおける空間データ型のファーストクラスサポート
- Entity SQLとLINQを使ったリッチなプログラム体験
- コードファースト、データベースファースト、モデルファーストアプローチのサポート
Entity Frameworkの空間データについては、ADO.NETチームのBlogのウォークスルーとJason Follas氏のReal World Exampleを参照して欲しい。