.Net OData V3 QueryOptions 生成带有替换名称的 odata-uri

.Net OData V3 QueryOptions generate odata-uri with replaced names

我一直在寻找解析 OData 的解决方案 URL 以替换使用的列名。

目的是接受服务器上对特定实体类型的 OData 查询,将查询转发到另一个结构相似但列名不同的 OData 服务,return 结果与前一个类型相同。
换句话说,为 OData 客户端提供一个通用接口,但能够将数据提取到其他来源,但保留客户端要求的排序和过滤。

简单的解决方案是用文本替换所需的列名,但这可能会与查询中可能的字符串值发生冲突。为此使用 RegEx 非常复杂,因此可能需要适当的解析器。

最佳解决方案是解析 ODataQueryOptions.FilterOrderBy,替换列名和 return 新的 OData 查询字符串。

所以问题是.. 有谁知道支持将 ODataQueryOptions 结构解析回 OData URI 的库或代码片段吗?

注意:此解决方案必须使用 OData 版本 3,因为我在我的项目中仅限于该版本。

好吧,我自己动手写了解析器。 我在 Github

上发布了代码