我一直在寻找解析OData URL以替换使用的列名的解决方案。
目的是接受服务器上的OData查询到特定实体类型,将查询转发到具有类似结构但其他列名称的另一个OData服务,并将结果作为前一类型返回。
换句话说,为OData客户端提供通用接口,但能够将数据提取到其他源,但保留客户端要求的排序和过滤。
简单的解决方案是文本替换所需的列名,但这可能与查询中可能的字符串值冲突。使用RegEx非常复杂,因此可能需要适当的解析器。
最好的解决方案是解析 ODataQueryOptions.Filter 和 OrderBy ,替换列名并返回新的OData查询字符串。
所以问题是..有没有人知道支持将ODataQueryOptions结构解析回OData URI的库或代码片段?
注意:此解决方案必须适用于OData版本3,因为我在项目中仅限于该版本。