将OData Uri转换为他的等效Linq表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将OData Uri转换为他的等效Linq表达式相关的知识,希望对你有一定的参考价值。

我正在创建一个WCF服务,其结果不是严格的OData提要(出于复杂的原因,业务策略等)。此外,URL的格式与OData略有不同,尽管其大部分功能非常相似。

我如何在Linq表达式树中转换URI?

提前致谢。

答案

看看Linq2Rest - https://bitbucket.org/jjrdk/linq2rest。它将OData查询解析为LINQ表达式,反之亦然。它也可以在Nuget上使用。

另一答案

目前,此功能不会单独公开。自己编写它是相当复杂的(取决于您需要支持的类型和模型)。是否真的有必要偏离OData协议?也许您需要做的事情可以通过其他方式实现。

另一答案

您可以使用以下nuget包:https://www.nuget.org/packages/Community.OData.Linq

它允许在linq expresson中使用任何没有ASP.NET依赖的IQuerable的OData文本查询参数

var result = query.OData().Filter("Id eq 1 or Name eq 'n3'").OrderBy("Name desc").ToArray();

以上是关于将OData Uri转换为他的等效Linq表达式的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串转换为其等效的 LINQ 表达式树?

Net Core:在洋葱架构中使用OData,将查询参数转换为Linq

与 OData 控制器等效的 Odata WCF 服务功能

AZURE 表存储、ODATA 和更友好的 URI 查询

OData URI 到 JSON mongoDB 查询

Lambda 表达式 LINQ 等效于 SQL 在同一表/变量上存在查询