Entity Framework 六月CTP 版本中包括一个新特性:对空间数据类型的官方支持。自SQL Server 2008 以及后续版本将空间数据类型支持包括进去之后,要使用类似数据,有时还是要采取变通方式。但这是实体数据模型(Entity Data Model,EDM)第一次提供基本支持。
使用空间数据类型,开发人员可以表示使用坐标系统的数据,比如形状、线条或是地图上的点。有两种不同空间数据类型可以使用:Geometry 和Geography。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 的丰富编程体验
- 支持编码优先(Code-first)、数据库优先(Database-first)和建模优先(Model-first)等多种方式。
想知道如何实际使用 Entity Framework 中的空间数据类型,请访问 ADO.NET 团队博客的概览,以及 Jason Follas 的真实世界范例。
评论