c# - Azure 移动应用服务器在 GET 上不返回 DBGeography
问题描述
我的 Microsoft Azure 移动应用服务器实例将愉快地将 DBGeography POINT() 存储为表列,该列包含在确认已进行 POST 的 JSON 数据中。
我的“位置”数据对象:
public DbGeography Location { get; set; }
[NotMapped]
public double Longitude { get; set; }
[NotMapped]
public double Latitude { get; set; }
我的控制器:
public async Task<IHttpActionResult> PostI4Item([FromBody] IslandFourEntity item)
{
var coordinates = DbGeography.FromText($"POINT({item.Longitude} {item.Latitude})");
item.Location = coordinates;
IslandFourEntity current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
“POST”请求后的邮递员响应:
{
"body": "Test body value",
"subject": "Test subject value",
"type": "type",
"location": {
"geography": {
"coordinateSystemId": 4326,
"wellKnownText": "POINT (172.590401 -43.539994)"
}
},
"longitude": 172.590401,
"latitude": -43.539994,
"id": "58542f5ee84d4867ae1f3d2c3b098b1b",
"version": "AAAAAAAAD6I=",
"createdAt": "2021-03-05T00:16:12.292Z",
"updatedAt": "2021-03-05T00:16:12.731Z",
"deleted": false
}
但是,如果您获取所有表值或仅一个单独的项目,则包含 DBGeography 项目的列不包含在其中(尽管肯定保存在数据库中。)
该记录的默认 GET 响应:
{
"deleted": false,
"updatedAt": "2021-03-05T00:16:12.731Z",
"createdAt": "2021-03-05T00:16:12.292Z",
"version": "AAAAAAAAD6I=",
"id": "58542f5ee84d4867ae1f3d2c3b098b1b",
"type": "type",
"subject": "Test subject value",
"body": "Test body value"
}
如您所见,除了“位置”之外,所有其他列都已返回。
所以这个问题可能更适合任何有过 Microsoft Azure 移动应用服务经验的人,但是如何修改默认的 Query() 方法以将 DBGeography 序列化为字符串?
解决方案
最终,你得到一个IQueryable<T>
back,然后它被 ASP.NET OData (v3) 系统或 Node.js 系统序列化(你不说你使用的是哪个)。这里有两个问题 - IQueryable 返回什么,以及 oData 用它做什么。
由于它是 OData v3 端点,请尝试添加?$expand=location
以查看是否会扩展输出。阅读文档中的 $expand 选项- 第 5.1.3 节涵盖了 $expand。
推荐阅读
- c++ - C++ 在 Visual Studio Code 中垂直对齐声明
- c# - C# Win Form 应用程序 UI 在 Timer for Updates 时变慢
- node.js - groovy.lang.MissingPropertyException:没有这样的属性:类的节点:groovy.lang.Binding
- excel - 定义名称更改公式的参考。无法设置图片类的公式属性
- c# - msbuild 使用了错误的程序集名称
- python - 查找随机数时Pygame列表索引超出范围
- python - 从其他 .py 文件导入类时 Flask 不起作用
- r - 粘贴带有单引号的日期
- python - 回调未处理 Google Cloud PubSub 消息
- r - 如何不在 x 轴图中省略 NA 值?[R]