.Net OData V3 QueryOptions 生成带有替换名称的 odata-uri
.Net OData V3 QueryOptions generate odata-uri with replaced names
我一直在寻找解析 OData 的解决方案 URL 以替换使用的列名。
目的是接受服务器上对特定实体类型的 OData 查询,将查询转发到另一个结构相似但列名不同的 OData 服务,return 结果与前一个类型相同。
换句话说,为 OData 客户端提供一个通用接口,但能够将数据提取到其他来源,但保留客户端要求的排序和过滤。
简单的解决方案是用文本替换所需的列名,但这可能会与查询中可能的字符串值发生冲突。为此使用 RegEx 非常复杂,因此可能需要适当的解析器。
最佳解决方案是解析 ODataQueryOptions.Filter 和 OrderBy,替换列名和 return 新的 OData 查询字符串。
所以问题是.. 有谁知道支持将 ODataQueryOptions 结构解析回 OData URI 的库或代码片段吗?
注意:此解决方案必须使用 OData 版本 3,因为我在我的项目中仅限于该版本。
好吧,我自己动手写了解析器。
我在 Github
上发布了代码
我一直在寻找解析 OData 的解决方案 URL 以替换使用的列名。
目的是接受服务器上对特定实体类型的 OData 查询,将查询转发到另一个结构相似但列名不同的 OData 服务,return 结果与前一个类型相同。
换句话说,为 OData 客户端提供一个通用接口,但能够将数据提取到其他来源,但保留客户端要求的排序和过滤。
简单的解决方案是用文本替换所需的列名,但这可能会与查询中可能的字符串值发生冲突。为此使用 RegEx 非常复杂,因此可能需要适当的解析器。
最佳解决方案是解析 ODataQueryOptions.Filter 和 OrderBy,替换列名和 return 新的 OData 查询字符串。
所以问题是.. 有谁知道支持将 ODataQueryOptions 结构解析回 OData URI 的库或代码片段吗?
注意:此解决方案必须使用 OData 版本 3,因为我在我的项目中仅限于该版本。
好吧,我自己动手写了解析器。 我在 Github
上发布了代码