我正在创建一个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表达式中使用OData文本查询参数,用于任何不使用ASP的IQuerable。. NET依赖项
var result = query.OData().Filter("Id eq 1 or Name eq 'n3'").OrderBy("Name desc").ToArray();