Entity Framework 引入空间数据类型

  • Jenni Konrad
  • 郑柯

2011 年 10 月 8 日

话题:.NET语言 & 开发

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 的真实世界范例

查看英文原文:InfoQ: Spatial Data Introduced to Entity Framework

.NET语言 & 开发