是否可以通过 Web API 进行 OData 的空间查询

Posted

技术标签:

【中文标题】是否可以通过 Web API 进行 OData 的空间查询【英文标题】:Is it possible to make OData's spatial queries over Web API 【发布时间】:2014-01-29 16:37:51 【问题描述】:

我正在尝试允许对我的 Entity Framework 的实体 (OData) 进行查询。 我的一些实体属于 DBGeography,我想对它们进行查询。 我在这样的查询上失败了:

api/towns?$filter=geo.distance(Location,Point (0.0 0.0)) lt 100

“')' 或 ',' 预计在 'geo.distance(Location,Point (0.0 0.0)) lt 100' 中的位置 28。”

【问题讨论】:

你搞清楚了吗?! 【参考方案1】:

根据 ODATA.org (link) (link) 应该是

http://domain.com/api/controller?
$filter=geo.distance(Location, geography'Point(-71.798 45.144)') lt 10000

但是 web api 会抛出这个异常:

"Message": "An error has occurred.",
"ExceptionMessage": "Unknown function 'geo.distance'.",
"ExceptionType": "System.NotImplementedException",

我猜目前不支持,希望很快就会支持。 ASP.NET's Codeplex 上有关于它的讨论,但没有答案。

【讨论】:

哦,现在都在一个地方!我现在已经放弃了 ODATA。我希望微软能尽快完成这项工作!

以上是关于是否可以通过 Web API 进行 OData 的空间查询的主要内容,如果未能解决你的问题,请参考以下文章

针对 .Net Odata Web Api 使用 Excel Power Query 进行身份验证

ODATA WEB API----ODATA服务与客户端

[转]Web Api系列教程第2季(OData篇)——使用Web Api创建只读的OData服务

从表中仅选择几列以使用 C# Web API 上的 Odata Select 查询进行映射

Asp.Net Web API 2第十八课——Working with Entity Relations in OData

Asp.Net MVC4 Web API - 我们是不是需要 OData 来构建快速查询服务