我有一个 DB First Entity Framework 5 数据访问层,它映射到一个包含名为 CenterCoordinate 的 SQL 几何类型字段的表。生成的实体包含以下内容:
公共 System.Data.Spatial.DbGeometry CenterCoordinate { 获取;放; }
我的客户端 javascript 请求 API 并且只接受 JSON。然后,我使用默认格式化程序 (JSON.NET) 使用 Asp.net Web API 来提供服务。在 API 控制器中,该字段具有一长串属性,包括 XCoordinate 和 YCoordinate。
在客户端中,JSON 仅包含以下内容:
几何:对象 CoordinateSystemId:3498 WellKnownBinary:空 WellKnownText:“POINT (6438089.715 1801515.828)”
我真的不想解析 WellKnownText 来获得 X 和 Y 的值。
所以问题是如何控制 System.Data.Spatial 类型与 JSON 的序列化/反序列化,以便获得更有用的东西?JSON.net 格式化程序如何知道要包含/排除什么?
注意:我真的不想用属性装饰实体,因为每次我从数据库重新生成模型时这些都会丢失(我不知道为什么我们不能通过 VS2012 向模型字段添加属性并让它记住它们之后再生)。那么这可以是部分类还是覆盖格式化程序?
谢谢,马特